开发者社区 问答 正文

数组的指针怎么访问数组中的元素求大神帮忙

所有需要的文件均已包含

using arry=int[5];
arry* chen()
〔
Int j=0,i,a[5];
While(cin>>i)
{if(j==5)
Break;
a[j]=i;
++j;
}
return &a;
〕
Int main()
{Int (*b)[5];
b=chen();
for(int i=0;i<5;i++)
cout<<(*b)[i]<<endl;
}

展开
收起
a123456678 2016-03-09 09:29:09 2092 分享 版权
1 条回答
写回答
取消 提交回答
  • 数组指针可以向楼主那样访问其中的元素,只是代码中有错误,向楼上说的那样,声明的一维数组a[5]是局部变量,把指针传递到作用域之外,再去取指针的值可能是随机值。改成如下:

     int a[5];
    arry* chen()
    {
        int j = 0, i;
        i = 5;
        while (1)
        {
            if (j == 5)
            {
                break;
            }
            a[j] = i;
            ++j;
        }
        return &a;
    }

    应该可以打出正常的值。
    此外
    Int (b)[5];定义的是执行5个指针的数组,可以指向一维数组,这时就相当于只用了b的一个元素,访问时用(b)指向一维数组的首歌元素的地址,所以也可以用如下方式访问,都是访问数组a的元素值:
    (*b)[i]
    ((b)+i)
    *((b[0]) + i)
    b0

    2019-07-17 18:55:21
    赞同 展开评论