zoukankan      html  css  js  c++  java
  • c缺陷与陷阱笔记-第三章 语义陷阱

    1.关于数组和数组指针

      数组的名字默认是常量指针,值不能改变的,例如

      int a[]={1,2,3,...},这个a的类型时int *,所以如果有int *p,那么a=p是合法的,其他的指针类型,例如char *p=a都是不合法的

      2维或者多维数组的指针声明,例如2维数组 int a[12][31],那么声明数组的指针应该是 int (*p)[31],p是一个数组指针,它指向的数组有31个int元素,p的实际类型应该是int**的,所有把int*类型赋值给int**类型时错误的,例如

      int a[10];

      int (*p)[10];

      p=a;//是错误的

      正确使用数组指针应该是:

      int a[12][31];

      int (*p)[31];

      for(p=a;p<&a[12];++p)

      {  

        int *day=*p;

        for(;day<&(*p)[31];++day)

          对*day操作

      }

      上述中,p和a都是int**类型的,a[12]是int*类型的,所以要&a[12],*p是int*类型的,代表 1维数组int [31]的数组名或指针

  • 相关阅读:
    浅谈 iOS 事件的传递和响应过程
    iOS 之渐变颜色
    系统enum的一些样式
    Storyboard操作的2个小技巧
    iOS 动画初步
    iOS之Runtime初应用
    Block使有注意点
    使用ios系统自带分享
    IOS原生地图与高德地图
    反向传值实例
  • 原文地址:https://www.cnblogs.com/buxianghe/p/3178261.html
Copyright © 2011-2022 走看看