C++中 指向结构数组的指针,如何赋初值

 我来答
折柳成萌
高粉答主

2018-07-22 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:6287万
展开全部

一、二维数组与二级指针

  • 二维数组

  • 二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。二维数组的相当于由若干个一维数组组成的一级数组。

    int a[3][4];

    此时的a是一个二维数组,a[0]、a[1]、a[2]均表示一个一维数组,它们三个元素共同组成一个一维数组a(元素是一维数组)。也就是说二维数组a是由若干个一维数组元素(a[0]、a[1]、a[2])组成的一维数组。

    int a[3][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}}设数组a的首地址为1000,各下标变量的首地址及其值如图所示。

    无论是一维数组还是二维数组,数组名均表示数组的首地址。

    2. 二级指针

    指向指针的指针称为二级指针,即二级指针不是指向一个普通变量,而是指向一个指针。如int **p,*p并不表示一个变量的值,而是另一个指针。

    二、二级指针指向二维数组

    int a[3][4];

    此时的a即是一个二级指针,*a指向二维数组的首地址(也是a[0]的首地址),*(a+1)指向a[1]的首地址,*(a+2)指向a[2]的首地址。*(*(a+0) + 1)表示元素a[0][1],*(*(a+i)+j)表示元素a[i][j]。

    三、应用举例


  •    
  • #include <stdio.h> void main(){    int a[3][4] = {{0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11}};         for(int i=0; i<3; i++)    {        for(int j=0; j<4; j++)        {            printf("%4d", *(*(a + i) + j));        }        printf("\n");    }}
  •    
  • 四、运行测试


  •    
  •    0   1  2  3   4  5  6   7   8   9  10  11
  •    
zcy990718
2018-07-22 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1.2万
采纳率:66%
帮助的人:1541万
展开全部
p=&stru;
追答
举例:
struct stru{...} st【5】,*pst;
pst = st;或者
pst=&st【0】;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式