File tree 1 file changed +31
-4
lines changed
1 file changed +31
-4
lines changed Original file line number Diff line number Diff line change 1
1
指针(二)
2
2
===
3
3
4
- 指针的本质是一个有类型的地址,类型决定了从这个地址开始的寻址能力。
4
+ 指针的本质是一个有类型的地址(指向了最低位的地址),是一个有类型的常量。用以存放指针的量,我们叫做指针变量。
5
+ 指针的类型决定了该指针的寻址能力,即从指针所代表的地址处的寻址范围。
6
+
5
7
6
8
``` c
7
9
#include < stdio.h>
8
10
9
- int main () {
11
+
12
+ int main (int argc, const char * argv[ ] ) {
10
13
char a = 1;
11
14
short b = 2;
15
+ int c = 10;
16
+ double d = 123.45;
17
+
18
+ printf("&a = %p \n", &a);
19
+ printf("&b = %p \n", &b);
20
+ printf("&c = %p \n", &c);
21
+ printf("&d = %p \n", &d);
22
+
23
+ // 如果没有类型的强转是不行的
24
+ printf("%d\n", * ((char * )0x7ff7bfeff29f));
25
+ printf("%d\n", * ((short * )0x7ff7bfeff29c));
26
+ printf("%d\n", * ((int * )0x7ff7bfeff298));
27
+ printf("%f\n", * ((double * )0x7ff7bfeff290));
28
+
29
+ return 0;
12
30
}
13
-
14
31
```
15
-
32
+ 结果:
33
+ ```
34
+ &a = 0x7ff7bfeff29f
35
+ &b = 0x7ff7bfeff29c
36
+ &c = 0x7ff7bfeff298
37
+ &d = 0x7ff7bfeff290
38
+ 1
39
+ 2
40
+ 10
41
+ 123.450000
42
+ ```
16
43
17
44
## 为什么要有指针
18
45
You can’t perform that action at this time.
0 commit comments