一维数组
int a[2] = {1 , 2};
int* p_a = a;
int i = 0;
for (; i < 2; ++i)
{
printf("*(p_a + %d) = %d \n" , i , *(p_a + i));
}
输出:
二维数组
int a[2][2] = {
{1 , 2}
};
int* p_a = a;
int i = 0;
int j = 0;
for (; i < 2; ++i)
{
for (j = 0; j < 2; ++j)
{
printf("(*p_a)[%d][%d] = %d\n" , i , j , (*p_a)[i][j]);
}
}
编译出错:
这边 (*p_a)
应该都是指向一维数组才对啊,为什么到了二维数组就发生了错误啊...,好像二维数组是一个整体一样....,什么原因??
*p_a
的类型是int. 另外这样做已经是UB了. 读帖去吧https://stackoverflow.com/que...