• 二维数组


    总结:

    下标运算符又叫变址运算符,变址内容 *(p+n)==p[n]

    指针是变量,这个变量的值是个地址

    a[0]和a[0][0]都是数,而且它们的首地址相等,区别是它们的数据类型不同

    a[0]这个数的数据类型是一维数组,a[0][0]这个数的数据类型是整数,a指向的数据类型是一维数组,所以a+1,内存移动12个字节。

    -----------------------------------------------------------------------------

    以数组下标的方式来访问其中的某个元素:a[i][j]。编译器总是将二维数组看成是一个一维数组,而一维数组的每一个元素又都是一个数组。a[3]这个一维数组的三个元素分别为:
    a[0],a[1],a[2]。每个元素的大小为sizeof(a[0]),即sizof(char)*4。由此可以计算出a[0],a[1],a[2]三个元素的首地址分别为& a[0],& a[0]+ 1*sizof(char)*4,& a[0]+ 2*sizof(char)*4。亦即a[i]的首地址为& a[0]+ i*sizof(char)*4。这时候再考虑a[i]里面的内容。就本例而言,a[i]内有4个char 类型的元素,其每个元素的首地址分别为&a[i],&a[i]+1*sizof(char),&a[i]+2*sizof(char)&a[i]+3*sizof(char),即a[i][j]的首地址为&a[i]+j*sizof(char)。再把&a[i]的值用a 表示,得到a[i][j]元素的首地址为:a+ i*sizof(char)*4+ j*sizof(char)。同样,可以换算成以指针的形式表示:*(*(a+i)+j)。  //上述i中乘4是因为每个a[i]内有4个char 类型的元素

    ----------------------------------------------------------------------

    char **p;//二级指针变量p,假设此时的p已经指向p2,解引用后,获得完整的数据,即p2中保存的地址,p得以指向c,再次对p解引用,即得到‘A’

    引自:http://c.biancheng.net/cpp/html/477.html

  • 相关阅读:
    python面向对象三大特性之一封装
    python面向对象的三大特性之一多态
    python之子类调用父类的两种方式
    python之接口继承
    python之组合与继承的使用场景
    Learning to Rank Short Text Pairs with Convolutional Deep Neural Networks(paper)
    lesson9-小象学院cv
    tips
    C5-fasterrcnn-小象cv-code
    C4-ResNet-TF-小象cv-code
  • 原文地址:https://www.cnblogs.com/ymd12103410/p/9551211.html
Copyright © 2020-2023  润新知