在C语言中,对于数组 char arr[],arr + 1 和 &arr + 1 有什么区别?
考察说明
考察数组名退化、指针算术和类型对加减运算的影响
回答思路
- 明确 arr 在表达式中退化为指向首元素的指针,类型为 char*
- 明确 &arr 的类型为指向整个数组的指针,类型为 char(*)[N]
- 解释 arr+1 按 char 大小偏移,即指向第二个元素
- 解释 &arr+1 按整个数组大小偏移,指向数组末尾之后
- 能举例说明二者地址数值相同但增量步长不同
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。