对于定义:int a[200], *p ; p=&a[0] ; ,下面的语句:p=a+1是合法的,但语句a=a+1是非法的。
时间: 2024-05-22 17:11:05 浏览: 46
C语言教学课件:_20-1_C基础复习_.ppt
这个问题涉及到数组和指针的概念。
首先,数组名a是数组首元素的地址,即&a[0]。指针p指向数组a的第一个元素,即p=&a[0]。则p+1指向a数组的第二个元素,即a[1]的地址。因此,p=a+1是合法的,表示将指针p指向a数组的第二个元素。
但是,a是一个数组名,是一个常量,不能被赋值。因此,a=a+1是非法的,编译器会报错。
阅读全文