我正在测试一些代码,以了解如何在c中实现2d数组。然后我遇到了以下问题。
代码是:
int main(){
int a[4][4];
printf("a: %p, *a: %p, **a: 0x%x\n",a,*a,**a);
}
Run Code Online (Sandbox Code Playgroud)
我用32位ubuntu gcc编译了这个
结果是:
a:0xbf9d6fdc,* a:0xbf9d6fdc,** a:0x0
我期望a和的值不同*a,但是它们是相同的。
为什么a和*a在这种情况下相同?是不是a一个int**类型?
那么,*操作员的作用是什么*a?