zoukankan      html  css  js  c++  java
  • C中数组指针的一些问题

    1.有一个二维数组 int a[3][4],对于a相关的一些指针,具体含义如下:

    对于一位数组int a[10],a是数组首元素的地址,&a是整个数组的地址。所以a+1和&a+1的步长不一样,前者的步长是4,后者的步长是40。

    2.定义一个数组类型

    typedef int (myArray)[10];

    myArray a;

    上面这两句的含义和:

    int a[10];

    作用是相同的。

    3.定义一个数组指针:

    typedef int (*mypAyyar)[10];  //mypArray是指向一维数组的指针数据类型

    mypArray pa; //pa的步长是sizeof(int)*10=40  //pa是指向一维数组的指针变量

    //pa是一个指向一维数组的指针(相当于一个二级指针),要让它指向一维数组int a[10],应该这么写:

    pa = &a //注意:pa的步长和&a的步长是相等的,都是40,而a的步长是4,所以不可能是pa = a。可以参考一下int* p=NULL;int b=10;p=&b;数组指针的操作和对元素指针的操作是类似的。

    当然,也可以直接定义一个指向一维数组的指针变量:

    int (*pb)[10];  //pb就是一个指向包含10个int元素的一维数组的指针变量,pb的步长是40

    pb=&a;

  • 相关阅读:
    Word 语法高亮
    AsyncFileUpload+Editor
    Silverlight QQ
    网页变黑白…
    Accelerator in Internet Explorer 8
    VS2010中文版安装Silverlight4 Tools…
    Win7下要求以管理员权限运行程序
    AjaxControlToolkitSeaDragon
    WebSlices in Internet Explorer 8
    <当和尚遇到钻石>读书笔记
  • 原文地址:https://www.cnblogs.com/jswu-ustc/p/8408774.html
Copyright © 2011-2022 走看看