指针与数组的关系及本质

2023-04-07 12:15:56

首先解释一下为什吗arr[i]=*(arr+i).在c语言中数组名表示数组首元素地址,arr[i]是按照*(arr+i)处理的,即按照数组元素首地址加上相应的位移量找到新元素的地址,然后解引用,便得到此处的值。接下来我们定义一个整型指针 int *p=arr可见p和arr是等价的。那接下来的事就好办了p[i]=*(p+i)


输出的全是5,也就是说明这4个式子等价所以arr[i]只是伪装,*(arr+i)才是其本质。

最后问题:为什吗子函数形参里定义一个数组用的是指针?因为当你想把父函数里的某个数组传给子函数里的形参,用的是这个数组的名字去传递,所以传指针合适。

  • 作者:daiweibin123
  • 原文链接:https://blog.csdn.net/qq_41896615/article/details/80144359
    更新时间:2023-04-07 12:15:56