下列定义中p指向的地址可更改,但*p不能够更改的是A.const int *p;B.int * const p;C.const int *const p;D.int *p;
下列定义中p指向的地址可更改,但*p不能够更改的是
A.const int *p;
B.int * const p;
C.const int *const p;
D.int *p;
B.int * const p;
C.const int *const p;
D.int *p;
参考解析
解析:const int *p;是只能改变指针地址,int * const p;是只能改变*p的内容,const int *const p;是指针的地址和*p的内容都不能改变,int *p;是两者都能改变。
相关考题:
若有定义float a=25,b,*p=b;,则下列对赋值语句*p=a;和p=a;的正确解释为( )。A.两个语句都是将变量a的值赋予变量pB.*p=a是使p指向变量a,而p=a是将变量a的值赋予变量指针pC.*p=a是将变量a的值赋予变量b,而p=a是使p指向变量aD.两个语句都是使p指向变量a
设有如下定义: struct sk { int a;float b; } data; int *p; 若要使p指向data中的a域,正确的赋值语句是( )。A.p=a;B.p=data.a;C.p=data.a;D.p=a;
以下程序段有错,错误原因是______。 main() { int *p,i;char *q,ch; p=i;q=ch;*p=40;*p=*q; }A.p和q的类型不一致,不能执行*p=*q;语句B.*p中存放的是地址值,因此不能执行*p=40;语句C.q没有指向具体的存储单元,所以*q没有实际意义D.q虽指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p=*q;语句
在下列叙述中,错误的一条是______。A.定义char*string="China"中的string是一个字符串变量,其值为ChinaB.若有一个多维数组a,则*(a+i)与a[i]等价C.int(*p)[4]表示p为指针变量,它指向包含4个元素的一维数组D.数组名代表数组的首地址,固定不变。指针变量可通过指向数组首地址来代表对应的数组,但其值可以改变
以下程序有错,错误的原因是main(){ int *p,i;char *q,ch; p=i; q=ch; *p=40; *p=*q; ......}A.p和q的类型不一致,不能执行*p=*q;语句B.*p中存放的是地址值,因此不能执行*p=40;语句C.q没有指向具体的存储单元,所以*q没有实际意义D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果
若有定义“floata=25,b,*p=&b;”,则下列对赋值语句“*p=a;”和“p=&a;”的正确解释为( )。A.两个语句都是将变量a的值赋予变量pB.*p=a是使P指向变量a,而P=&a是将变量的值赋予变量指针pC.*p=a是将变量a的值赋予变量b,而&;a是使P指向变量aD.两个语句都是使p指向变量a
若有定义语句:double a,*P=&a;以下叙述中错误的是( )。A.定义语句中的*号是-个间址运算符B.定义语句中的木号是-个说明符C.定义语句中的P只能存放double类型变量的地址D.定义语句中,P=&a把变量a的地址作为初值赋给指针变量P
若有int a[10],*p=a;,则( )。 A、p++可以使p指向下一个字节B、p+=2 相当于p=sizeof(a)/10C、p++可以使p指向下一个元素,即a[1]的首地址D、p+=2可以使p指向下一个元素,即a[1]的首地址
若有下列定义,则对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]
假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为()。Achar *p=s;Bchar *p=s;Cchar *p;p=*s;Dchar *p; p=s;
变量s已定义为"char *s="Heoll world!";",要使变量p指向s所指向的同一个字符串,则应定义为()。Achar *p=s;Bchar *p=s;Cchar *p;p=*s;Dchar *p;p=s;
单选题假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为()。Achar *p=s;Bchar *p=s;Cchar *p;p=*s;Dchar *p; p=s;
单选题若有以下定义,说法错误的是( )。int a=100,*p=a;A声明变量p,其中*表示p是一个指针变量B变量p经初始化,获得变量a的地址C变量p只可以指向一个整型变量D变量p的值为100
单选题若已定义:int x=12;对①int *p=x;和②*p=x;这两条语句的正确理解是()A语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x的值赋给指针变量p所指向的变量B语句①和②中的*p含义相同,都表示给指针变量赋值C语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x的值赋给指针变量pD语句①和②的执行结果都是把变量x的地址赋给指针变量p
单选题变量s已定义为"char *s="Heoll world!";",要使变量p指向s所指向的同一个字符串,则应定义为()。Achar *p=s;Bchar *p=s;Cchar *p;p=*s;Dchar *p;p=s;