【问题标题】:what is the difference between *p and p[1]?*p 和 p[1] 有什么区别?
【发布时间】:2022-12-04 20:17:54
【问题描述】:

这是使用malloc进行动态内存分配的代码

void main()
{
    int *p,n=5;
    p=(int*)malloc(5*sizeof(int));

    p[0]=10;
    //  or *p=10;
    p[1]=20
    //  or *(p+1)=20;
}

据我所知,p是一个指针变量,指向已分配内存的基地址。如果不使用*操作符,则无法访问p指向的内容。但是声明p[1]=20*(p+1)=20 做同样的工作。为什么这是一样的,如果我们也可以这样做,* 有什么用 p[1]

【问题讨论】:

    标签: c pointers malloc


    【解决方案1】:

    *p 和 p[1] 的区别在于 *p 是指向数组第一个元素的指针,而 p[1] 是数组的第二个元素。区别在于 *p 允许您访问整个数组,而 p[1] 只允许您访问单个元素。

    【讨论】:

      猜你喜欢
      • 2019-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-06
      • 2013-12-10
      • 2016-01-23
      • 2014-05-30
      相关资源
      最近更新 更多