Skip to content

Commit 1f8bc1a

Browse files
committed
docs(pointer): edit text
1 parent dadbeec commit 1f8bc1a

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

docs/pointer.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ j = (short*)0x1234;
138138
j = j + 1; // 0x1236
139139
```
140140

141-
上面示例中,`j`是一个指针,指向内存地址`0x1234`。你可能以为`j + 1`等于`0x1235`,但正确答案是`0x1236`。原因是`j + 1`表示指针向内存地址的高位移动一个单位,而一个单位的`short`类型占据两个字节的宽度,所以相当于向高位移动两个字节。同样的,`j - 1`得到的结果是`0x1232`
141+
上面示例中,`j`是一个指针,指向内存地址`0x1234`由于`0x1234`本身是整数类型(`int`),跟`j`的类型(`short*`)并不兼容,所以强制使用类型投射,将`0x1234`转成`short*`你可能以为`j + 1`等于`0x1235`,但正确答案是`0x1236`。原因是`j + 1`表示指针向内存地址的高位移动一个单位,而一个单位的`short`类型占据两个字节的宽度,所以相当于向高位移动两个字节。同样的,`j - 1`得到的结果是`0x1232`
142142

143143
指针移动的单位,与指针指向的数据类型有关。数据类型占据多少个字节,每单位就移动多少个字节。
144144

0 commit comments

Comments
 (0)