大一C语言程序设计实训教程练习题

求详细解答,孩子要哭啦!!!C和D有什么区别吗?

img

数组名是常量指针,指针是变量指针。因此a是不可以运算的,因此a++这个运算是错误的,如果改成像B一样就对了。而p是指针,是可以运算的,因此p++是对的。

a是数组名,p是指针
p存的是数组首地址自增会自增指针大小
a数组名虽然也是数组首地址 但是暂时没见过自增的数组名

p指向该数组空间,可以通过递增指向不同数组元素;而a是数组名也是数组空间的首地址,但不可以对其进行递增。即可以把a也当成指针,但是这是个常指针,不能改变其指向。所以不可以a++。