数组指针示例

 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 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值