一个用指针变量指向数组元素的问题

2025-02-25 21:07:07
推荐回答(1个)
回答1:

1.
数组实质上是指向一段连续内存区域起始地址的指针,所以int[10]可以复制给int*,这样只会造成数组退化(编译时长度信息丢失)。
2.
*p
=
a永远不会错,因为你只是将a的值赋给了p所指向的内存区域,这句在编译时永不会报错。
3.
(*p
+
10)和(*(p
+
10))你要区分清楚,一个是将p指向的值和10相加的结果,一个是取p+10对应的内存地址的值。
4.
*(p
+
10)错的原因很简单,你将p看成数组,你p是int[10],你能使用p[10]吗!?明显的数组越界!