mirror of
https://github.com/wangdoc/clang-tutorial.git
synced 2026-02-03 19:03:44 +08:00
docs(pointer): fixed #56
This commit is contained in:
@@ -126,7 +126,7 @@ int* p = NULL;
|
||||
|
||||
## 指针的运算
|
||||
|
||||
指针本质上就是一个无符号整数,代表了内存地址。它可以进行运算,但是规则并不是整数运算的运算。
|
||||
指针本质上就是一个无符号整数,代表了内存地址。它可以进行运算,但是规则并不是整数运算的规则。
|
||||
|
||||
(1)指针与整数值的加减运算
|
||||
|
||||
@@ -138,7 +138,7 @@ j = (short*)0x1234;
|
||||
j = j + 1; // 0x1236
|
||||
```
|
||||
|
||||
上面示例中,`j`是一个指针,指向内存地址`0x1234`。你可能以为`j + 1`等于`0x1235`,但正确答案是`0x1236`。原因是`j + 1`表示指针向高位移动一个单位,而一个单位的`short`类型占据两个字节的宽度,所以相当于向高位移动两个字节。同样的,`j - 1`得到的结果是`0x1232`。
|
||||
上面示例中,`j`是一个指针,指向内存地址`0x1234`。你可能以为`j + 1`等于`0x1235`,但正确答案是`0x1236`。原因是`j + 1`表示指针向内存地址的高位移动一个单位,而一个单位的`short`类型占据两个字节的宽度,所以相当于向高位移动两个字节。同样的,`j - 1`得到的结果是`0x1232`。
|
||||
|
||||
指针移动的单位,与指针指向的数据类型有关。数据类型占据多少个字节,每单位就移动多少个字节。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user