我正在读大学前一年的学习材料,我看到了一个问题:
int *a
与int a[5]
和int *[5]
之间有何区别?最后一个表示什么?
答案 0 :(得分:0)
int *a[5]
声明了一个指向int的指针数组。
最简单的方法是确定变量声明的细节是从右到左读取的。
答案 1 :(得分:0)
简而言之:
int *a
- 创建指向int
的指针。这应该包含另一个int
的内存地址。
*a
的示例值为0x00001
,0x000057
等。
int a[5]
- 创建一个包含五个int
元素的数组,每个元素包含int
个值。
这里显示了数组中每个元素的可能值:
-------------------------
| Array element | Value |
-------------------------
| a[0] | 1 |
| a[1] | 2 |
| a[2] | 3 |
| a[3] | 4 |
| a[4] | 5 |
-------------------------
int *a[5]
- 创建一个数组,其中包含指向int
个元素的五个指针,每个元素包含另一个int
的内存地址。
这里显示了指针数组中每个元素的可能值:
-------------------------
| Array element | Value |
-------------------------
| a[0] | 0x000 |
| a[1] | 0x001 |
| a[2] | 0x002 |
| a[3] | 0x003 |
| a[4] | 0x004 |
-------------------------