C语言问题,指针指向数组。使指针变量p指向数组a的第三个元素,p=&a+2可以吗?如果不可以,它是
C语言问题,指针指向数组。使指针变量p指向数组a的第三个元素,p=&a+2可以吗?如果不可以,它是什么意思?p=a[2]又是什么意思?...
C语言问题,指针指向数组。使指针变量p指向数组a的第三个元素,p=&a+2可以吗?如果不可以,它是什么意思?p=a[2]又是什么意思?
展开
3个回答
展开全部
int a[10] ;
int *p=a ; //定义一维指针p,并指向数组a首地址。
p=a+2 ; //指向数组a的第三个元素
或写成:
p= &a[2] ; //通过&运算符号来取a[2]的地址,赋值给p
p=&a ; //这是错误的语句!因为,&a的类型是int **, 而p是int *类型,所以,类型不相符,不能进行赋值操作。
int *p=a ; //定义一维指针p,并指向数组a首地址。
p=a+2 ; //指向数组a的第三个元素
或写成:
p= &a[2] ; //通过&运算符号来取a[2]的地址,赋值给p
p=&a ; //这是错误的语句!因为,&a的类型是int **, 而p是int *类型,所以,类型不相符,不能进行赋值操作。
追问
p=a[2];是错误的语句吗?
追答
如果数组和指针与我上面的定义是一致的,则p=a[2]也是错的,因为:a[2]的类型是int,而p的类型是int *,两者不同,不能相互赋值!!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询