更多“设有定义:char a[10]="ABCD",*p=a;,则*(p+3)的值是( )。 ”相关问题
  • 第1题:

    设有定义语句“int a=10,*p=&a;”,则表达式“a十*p”的值是( )

    A.10

    B.20

    C.100

    D.语法出错


    正确答案:B
    在数据定义语句中的“*p=&a”,表示指针变量p已经指向变量a,所以表达式中的“*p”就是变量a,“a+*p”就是“a+a”,所以该表达式的值为20。本题答案应选B。

  • 第2题:

    有如下说明 int a[10]=[1,2,3,4,5,6,7,8,9,10},*p=a;则*(p+3)的值是______。


    B 解析:p是指针,p+8是地址值,D是错的;*p是p的目标变量,即a[0],值为1,所*p+9的值是10,而*p+=9值是重新给a[0]赋了值(1+9);所以A和C也是错的。p+8是地址值,指向a[8],那么*(p+8)的值就是a[8]的值,即9。

  • 第3题:

    设有定义: double a[10], *p=a;以下能够代表数组元素 a[3]的是

    A.*p[3]

    B.(*p)[3]

    C.*(p+3)

    D.*p+3


    D 语句*s=a,使用指针变量s指向一维数组a的首地址,所以*(s+3)表示的是引用数组a[3]。

  • 第4题:

    要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为()

    A.const char *p=“ABCD”;

    B.char *const p=“ABCD”;

    C.char const *p=“ABCD”;

    D.const char * const p=“ABCD”;


    const char* const p=”ABCD”;

  • 第5题:

    1、有如下说明 int a[10]=[1,2,3,4,5,6,7,8,9,10},*p=a;则*(p+3)的值是______。


    B 解析:p是指针,p+8是地址值,D是错的;*p是p的目标变量,即a[0],值为1,所*p+9的值是10,而*p+=9值是重新给a[0]赋了值(1+9);所以A和C也是错的。p+8是地址值,指向a[8],那么*(p+8)的值就是a[8]的值,即9。