我在复习时突然想到了关于二维数组指针的问题,就顺手写了个程序,结果很奇怪。希望能帮我解决一下。顺便讲一下关于二维数组指针的知识,感谢!
供参考:
#include <stdio.h>
int main()
{
int i, j, ch[2][3] = { {1,2,3},{4,5,6} };
int* p = &ch[0][0];
for (i = 0; i < 2; i++)
for (j = 0; j < 3; j++)
printf(" %d", *(p + i * 3 + j));
return 0;
}
你这段代码应该无法编译成功吧,ch[0][0]是一个int类型的值应当无法赋值给int*类型的p的