定义如下一维数组:int a[5],*p=a;,则下列描述错误的是()。A.表达式p=p+1是合法的B.表达式a=a+1是合法的C.表达式p+a是合法的D.表达式a+2是合法的

定义如下一维数组:int a[5],*p=a;,则下列描述错误的是()。

A.表达式p=p+1是合法的

B.表达式a=a+1是合法的

C.表达式p+a是合法的

D.表达式a+2是合法的


参考答案和解析
B 解析:本题考核指针与数组的关系。对于选项A,由于在定义时指针p指向数组a[0],那么表达式“p=p+1”就是让指针p指向数组中的元素a[1],所以是合法的。对于选项C,数组名a代表该数组的首地址,指针p中存的也是地址,所以它们之间可以进行加减运算。对于选项D,数组名a代表该数组的首地址,那么表达式“a+2”代表的是数组元素a[2]的地址。对于选项B,由于数组名代表该数组的首地址,并且只能引用该地址而不能进行修改,所以是不合法的。

相关考题:

程序中有如下语句for(int i = 0; i5; i++)cout*(p + i)",";能够依次输出 int 型一维数组 DATA 的前 5 个元素。由此可知,变量 p 的定义及初始 化语句是【 7 】 。

若有以下定义,则对a数组元素地址的正确引用是( )。 int a[5],*p=a;A.p+5B.*a+1C.a+1D.a[0]

若有定义int a[9],*p=a;,则p+5表示A.数组元素a[5]的值B.数组元素a[5]的地址C.数组元素a[6]的地址D.数组元素a[0]的值加上5

现有如下定义:int a,b,*p,*q;,则下列赋值语句错误的是A.p=a;B.q=b;C.p=q;D.p=a;

下列定义中,( )是定义指向数组的指针p. A、int*p[5]B、int(*p)[5]C、(int*)p[5]D、int*p[]

若有定义int a[9],+P=a;,则P+5表示( )。A.数组元素a[5]的值B.数组元素a[5]的地址SXB 若有定义int a[9],+P=a;,则P+5表示( )。A.数组元素a[5]的值B.数组元素a[5]的地址C.数组元素a[6]的地址D.数组元素a[0]的值加上5

若有以下定义,则对a数组元素的正确引用是( )。int a[5],*p=a;A)*a[5]B)*a 1C)*(p 5)D)*(a 2)

若有以下定义,则对a数组元素地址的正确引用是( )。int a[5],*p=a;A)p 5 B)*a 1 C)a 1 D)a 1D)a[0]

程序中有如下语句for(int i=0;i<5;i++)cout<<*(p+i<<“,”;能够依次输出int型一维数组a的前5个元素。由此可知,变量P的定义及初始化语句是( )。A.int*p=a;B.int p=a;C.*p=a;D.p=a;

有如下定义语句:int a[]={1,2,3,4,5};,则对语句int*p=a;正确的描述是( )。A.语句int*p=a;定义不正确B.语句int*p=a;初始化变量p,使其指向数组对象a的第一个元素C.语句int*p=a;是把a[0]的值赋给变量pD.语句iht*p=a;是把a[l]的值赋给变量p

有如下定义语句:int a[]={1,2,3,4,5);,则对语句int *p=a;正确的描述是( )。A.语句int *p=a;定义不正确B.语句int *p=a;初始化变量p,使其指向数组对象a的第一个元素C.语句int *p=a;是把a[0]的值赋给变量pD.语句int *p=a;是把a[1]的值赋给变量p

定义如下一维数组:int a[5],*p;,则下列描述错误的是( )。A.表达式p=p+1是合法的B.表达式a=a+1是合法的C.表达式p-a是合法的D.表达式a+2是合法的

若有如下定义,则__________是对数组元素的正确的引用。. int a[10] , *p ; p=a ;A.*a[10]B.a[11]C.*(p+11)D.*p *p *p

若有定义int a[10],*p=a,则p+6表示( )。A.数组元素a[5]的值B.数组元素a[5]的地址C.数组元素a[6]的地址D.数组元素a[0]的值加上5

若有下列定义,则对a数组元素地址的正确引用是( )。 int a[5],*p=a;A.p+5B.*a+1C.a+1D.a[0]

若有定义int a[5],*p=a;则正确引用数组元素的是( )。A.*a[5]B.*a+2C.*(p+5)D.*(a+2)

若有下列定义,则对a数组元素地址的正确引用是( )。int a[5],*p=a;A.p+5B.a+1C.&a+1D.a[0]

若有下列定义,则对a数组无素地址的正确引用是( )。 int a[5],*p=a;A.p+5B.*a+1C.a+1D.a[0]

若有定义:int a[5],*p=a;,则对a数组元素地址的正确引用是______。A.p+5B.*a+1C.a+1D.a[0]

若有下列定义,则对a数组元素地址的正确引用是( )。int a[5],*p=a;A.p+5 B.*a+1 若有下列定义,则对a数组元素地址的正确引用是( )。int a[5],*p=a;A.p+5B.*a+1C.&a+1D.&a[0]

指向数组元素为整型的一维数组的指针变量的定义是()。A、int*p()B、int(*p)()C、int*p[4]D、int(*p)[4]

设有C语句int a[3][4];, 则每次移动过a数组一行元素的指针变量定义形式是()A、int *p;B、int **p;C、int(*p)[4];D、int *p[4];

数组定义与赋值语句如下:int[]a={1,2,3,4,5};则a[2]的值是()

数组定义与赋初值语句如下:int[]a={1,2,3,4,5};则a[2]的值为()。

若有定义:int a[10],*p=a;则表示数组元素a[3]的错误选项是()。A、*(a+=3)B、*(p+=3)C、*(a+3)D、p[3]

填空题数组定义与赋值语句如下:int[]a={1,2,3,4,5};则a[2]的值是()

填空题数组定义与赋初值语句如下:int[]a={1,2,3,4,5};则a[2]的值为()。

单选题若有定义:int a[10],*p=a;则表示数组元素a[3]的错误选项是()。A*(a+=3)B*(p+=3)C*(a+3)Dp[3]