|
1
6
让我们看看阵列在内存中的布局: low address high address | | v v +----+----+----+----+----+----+ | 34 | 65 | 23 | 75 | 76 | 33 | +----+----+----+----+----+----+ ^ ^ ^ ^ | | | ...etc | | | | | arr[2] | | | arr[1] | arr[0]
commutative
加法的性质,表达式
的等价性
指向数组第一个元素的指针是
|
|
|
2
3
数组中的每个元素在内存中都有一个位置。阵列中的位置是连续的。C中的数组是指针,总是指向集合(数组的第一个元素)内存中的第一个方向。
*(arr+i)
=>通过在内存中添加该点的位置来获取内存中的值
*(i+arr)
=>是一样的吗
i[arr]
|
|
3
1
|
|
4
1
|
|
|
5
0
由于数组下标运算符
第6.5.2.1节 C standard
表达式
|
|
|
6
0
这是因为C语言中的数组变量(即示例中的arr)只是指向内存位置数组开头的指针。指针是表示特定内存位置地址的数字。当你把和放在指针前面时,它意味着“给我该内存位置中的数据”。
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |