深入了解C指針之---指針安全
1 1 #include <stdio.h>
2 2
3 3 int main(int argc, char **argv)
4 4 {
5 5 int var1;
6 6 printf("input the var1: ");
7 7 scanf("%d", &var1);
8 8 int var2;
9 9 printf("input the var2: ");
10 10 scanf("%d", &var2);
11 11
12 12 printf("示範不恰當的指針聲明:\n");
13 13 int *ptr1, ptr2;
14 14 ptr1 = &var1;
15 15 ptr2 = var2;
16 16 printf("*ptr1: %d and ptr1: %p\n", *ptr1, ptr1);
17 17 printf("var1: %d and &var1: %p\n", var1, &var1);
18 18 printf("ptr2: %d and &ptr2: %p\n", ptr2, &ptr2);
19 19 printf("var2: %d and &var2: %p\n", var2, &var2);
20 20 printf("\n");
21 21
22 22 #define PINT int*
23 23 printf("使用宏定義的方式定義指針:\n");
24 24 PINT ptr3, ptr4;
25 25 ptr3 = &var1;
26 26 ptr4 = var2;
27 27 printf("*ptr3: %d and ptr3: %p\n", *ptr3, ptr3);
28 28 printf("var1: %d and &var1: %p\n", var1, &var1);
29 29 printf("ptr4: %d and &ptr4: %p\n", ptr4, &ptr4);
30 30 printf("var2: %d and &var2: %p\n", var2, &var2);
31 31 printf("\n");
32 32
33 33 printf("使用類型定義的方式定義指針:\n");
34 34 typedef int* PPINT;
35 35 PPINT ptr5, ptr6;
36 36 ptr5 = &var1;
37 37 ptr6 = &var2;
38 38 printf("*ptr5: %d and ptr5: %p\n", *ptr5, ptr5);
39 39 printf("var1: %d and &var1: %p\n", var1, &var1);
40 40 printf("*ptr6: %d and ptr6: %p\n", *ptr6, ptr6);
41 41 printf("var2: %d and &var2: %p\n", var2, &var2);
42 42
43 43 return 0;
44 44 }
人就像是被蒙着眼推磨的驢子,生活就像一條鞭子;當鞭子抽到你背上時,你就隻能一直往前走,雖然連你也不知道要走到什麼時候為止,便一直這麼堅持着。