刚才无聊 尝试着将二维数组和一维数组进行了一下转换,结果成功,但是有一点(绿线部分)不是很理解,哪位给解释一下
程序代码:
#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 编辑 ]