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]的数组名或指针

  • 相关阅读:
    Qt之QFileSystemWatcher
    Qt之qSetMessagePattern
    物联网操作系统HelloX V1.80测试版发布
    CoreOS Linux available in China
    等火车
    HTTP 简介
    建造模式Builder
    MariaDB exists 学习
    javascript 中 typeof 的使用
    Java字符串null相加
  • 原文地址:https://www.cnblogs.com/buxianghe/p/3178261.html
Copyright © 2011-2022 走看看