基本问题..不得不问。任何帮助将不胜感激。
问:为什么我不能取消引用指向多维数组的指针,如下所示:
int arr [2][2] = { {1, 2} , {3, 4} };
printf("%d ", *arr);
答案 0 :(得分:3)
您可以取消引用它,只是结果不符合您的期望:*arr
不是int
,它是指向int
的指针(好的,一维数组)。如果您想要查看1
,请添加另一个星标:
printf("%d ", **arr);
答案 1 :(得分:1)
尝试:
int arr [2][2] = { {1, 2} , {3, 4} };
printf("%d ", **arr);
您需要两个级别的解除引用,因为您的数组是二维的。
答案 2 :(得分:1)
如果a
为int[][]
,则*a
为int[]
。您需要另一级别的重定向来访问数组元素。也就是说,**a
是int
。
答案 3 :(得分:0)
请记住,如果我们定义一个as int [] [],那么它意味着它是一个二维数组,它可以被** a解引用。如果数组是一维的,那么我们应该使用* a来取消引用它......
试试..