您的位置:首页 > 其它

数组指针示例

2016-02-11 14:01 176 查看
 1 #include<stdio.h>

  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 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: