2
3
4 int main()
5 {
6 int a[5] = {11,22,33,44,55};
7 int *p;//野指针 尽量避免,用空指针代替
8
9 int* q = NULL;//空指针
10 printf("p = %p\n",p);
11 printf("q = %p,q = %d\n",q,q);
12
13 #define T int*
14 union{
15 T x;
16 char b[sizeof(T)];
17 }u;
18 u.x = q;
19 int i;
20 for(i = 0;i<sizeof(T);i++)
21 printf("%d",u.b[i]);
22 printf("\n");
23 // *p = 100;可能导致非法内存访问
24 p = a;//数组当作数据用时表示第一个元素的地址
25 for(i = 0;i<5;i++)printf("%d ",a[i]); printf("\n");
26 for(i = 0;i<5;i++)printf("%d ",*(p+i));printf("\n");
27 for(i = 0;i<5;i++)printf("%d ",p[i]); printf("\n");
28 for(i = 0;i<5;i++)printf("%d ",*(a+i));printf("\n");
29
30 printf("%d\n",(p+2)[1]);//*((p+2)+1)==>*(p+3)==>p[3]
31 q = p+1;
32 printf("%n",q[1]);
32
33 for(i = 0;i<5;i++)printf("%d ",*p+i); printf("\n");
34 for(i = 0;i<5;i++)printf("%d ",*p++); printf("\n");
35 for(i = -5;i<0;i++)printf("%d ",p[i]); printf("\n");
36 for(i = 0;i<5;i++)printf("%d ",*p--); printf("\n");//第一个是乱码 然后是 55 44 33 22 用--p才能输出55 44 33 22 11
37 return 0;
38 }