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;

  • 相关阅读:
    Confd+Consul 动态生成配置文件
    Flask实例化的参数 及 对app的配置
    Flask 中的路由系统
    Flask 中内置的 Session
    Flask中的模板语言jinja2
    docker
    windows上使用git
    redis的源码编译安装+发布订阅+RDB持久化
    mariadb安装和mysql主从同步
    nginx负载均衡
  • 原文地址:https://www.cnblogs.com/jswu-ustc/p/8408774.html
Copyright © 2011-2022 走看看