若有定义:char x[3]={ '1', '2', '3'},*q; 则下列语句中不正确的是(

若有定义:char x[3]={ '1', '2', '3'},*q; 则下列语句中不正确的是( 若有定义:char x[3]={ '1', '2', '3'},*q; 则下列语句中不正确的是( ) 。
作答:
A. q=x+1;
B. q=x;
C. q=&x[0];
D. q=x[2];
为什么?谢谢回答!

D不正确
x是1维数组,有3个元素
q是指针;
答案A,表示将指针q指向x的第二个元素的位置
答案B,表示将指针q指向x的第一个元素的位置
答案C,x[0]表示第一个元素,&x[0]表示第一个元素的地址,那么也就表示将指针Q指向第一个元素
答案D,x[2]表示第三个元素,而q为指针,显然不能赋值
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-11
D是错的;类型相同才能赋值
q是指针,存的是地址;
x作为一维数组的名字, 存的是数组的首地址; 所以B,C正确
地址变量 做加一操作是 指针指向 向后一个位置 所以 x+1 , 代表a[1]的地址;
q是指针变量,a[2]是 char型,存的字符, 不能赋值
相似回答