可能重复:
数组名是C中的指针吗?
如果我定义:
int tab[4];
Run Code Online (Sandbox Code Playgroud)
tab是一个指针,因为如果我显示选项卡:
printf("%d", tab);
Run Code Online (Sandbox Code Playgroud)
上面的代码将显示内存中第一个元素的地址.
这就是为什么我想知道为什么我们不定义如下的数组:
int *tab[4];
Run Code Online (Sandbox Code Playgroud)
因为tab是一个指针.
感谢您的任何帮助!
tab是一个指针
不,tab是一个数组.一个int[4]具体的.但是当你将它作为参数传递给函数(以及许多其他上下文中)时,数组将转换为指向其第一个元素的指针.您可以在调用时看到数组和指针之间的区别sizeof array vs.时sizeof pointer,当您尝试分配给数组(不会编译)时,等等.
int *tab[4];
Run Code Online (Sandbox Code Playgroud)
声明一个包含四个指针的数组int.我不知道这与数组和指针之间的混淆有什么关系.
| 归档时间: |
|
| 查看次数: |
435 次 |
| 最近记录: |