小编Don*_*ong的帖子

2D数组:当我将ptr声明为int ptr [4] [4]时,为什么ptr和* ptr相同?

我正在测试一些代码,以了解如何在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,但是它们是相同的。

  1. 为什么a*a在这种情况下相同?是不是a一个int**类型?

  2. 那么,*操作员的作用是什么*a

c arrays pointers

1
推荐指数
1
解决办法
52
查看次数

标签 统计

arrays ×1

c ×1

pointers ×1