刚才无聊 尝试着将二维数组和一维数组进行了一下转换,结果成功,但是有一点(绿线部分)不是很理解,哪位给解释一下
程序代码:#include <stdio.h>
int main(int argc, char* argv[])
{
int zip[4][2];
int i,j;
//以下是对二维数组进行简单的赋值
for(i=0;i<4;i++)
{
for(j=0;j<2;j++)
{
zip[i][j]=(i+1)*(j+1);
}
}
printf("以下是对二维数组进行输出\n");
for(i=0;i<4;i++)
{
for(j=0;j<2;j++)
{
printf("%4d",zip[i][j]);
}
}
printf("\n\n\n以下是转换一维数组之后的输出\n");
for(i=0;i<8;i++)
{
printf("%4d",(zip[i]-i)[0]); //这里要加[0] 才能输出具体的元素值
//printf("%4d",(zip[i]-i)); //注意如果改成这个代码,则输出数组元素地址而不是元素值
}
printf("\n\n\n...............over\n");
return 0;
}
[ 本帖最后由 wp231957 于 2014-1-14 12:47 编辑 ]








