uint16_t x[] = {1,2,4,8};
uint16_t *y = &x[1];
y+=2;
Run Code Online (Sandbox Code Playgroud)
所以输出是8,我想知道为什么?在我看来,这应该等于4,因为&x [1]应该是2并且加2应该等于4.我缺少什么?
mol*_*ilo 10
这是你的数组:
[0] [1] [2] [3]
+---+---+---+---+
x= | 1 | 2 | 4 | 8 |
+---+---+---+---+
Run Code Online (Sandbox Code Playgroud)
y = &x[1]是指向x[1]第二个元素的指针:
[0] [1] [2] [3]
+---+---+---+---+
x= | 1 | 2 | 4 | 8 |
+---+---+---+---+
^
|
y
Run Code Online (Sandbox Code Playgroud)
y += 2向右移动y两步:
[0] [1] [2] [3]
+---+---+---+---+
x= | 1 | 2 | 4 | 8 |
+---+---+---+---+
^
|
y
Run Code Online (Sandbox Code Playgroud)
现在*y是8
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |