更多“在16位编译系统上,若有定义int a[]={10,20,30},*p=&a;,少逗号当执行p++;后,下列说法错误的是 ”相关问题
  • 第1题:

    若有定义: int*p; 则下列各选项中,不同于表达式“*p=*p+1;”的是( )。

    A.*p++;

    B.++*p;

    C.*p+=1;

    D.++(*p);


    正确答案:A
    解析:题目中的语句“*p=*p+1;”是将指针变量p所指向的存储单元的值加1,然后再放入p所指向的存储单元中。选项A中,语句“*p++;”,当把该表达式赋给一整型变量k时,就会发现,原语句可变为“k=*p;p=p+1;”,即语句“*p++”最后所执行的是p的值(即p中存放的地址)加1,与题中语句“*p=*p+1;”的意思不同。再来看选项B,C,D,选项B中的语句可表示为“*p=*p+1;”。选项C中的语句可表示为“*p=*p+1;”。选项D中的语句也可表示为“*p=*p+1;”。

  • 第2题:

    在16位编译系统上,若有定义“int a[]={10,20,30},*p=&a;”,当执行“P++;”后,下列说法错误的是( )。

    A.P向高地址移了一个字节

    B.P向高地址移了一个存储单元

    C.P向高地址移了两个字节

    D.P与a+1等价


    正确答案:A
    因为P是整型的指针变量,因此其移动一个位置即两个字节,故选择A选项。

  • 第3题:

    在16 位编译系统上,若有定义int a[ ]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是 。

    A.p 向高地址移了一个字节

    B.p 向高地址移了一个存储单元

    C.p 向高地址移了两个字节

    D.p 与a+1 等价


    A 解析: 在16位编译系统下,一个int型变量是用16位来存储的,其占用两个字节,当执行p++之后,相当于p向高位移动了一个存储单元,也就是两个字节。因此,本题的答案为选项A)。

  • 第4题:

    在16位编译系统上,若有定义int a[]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是

    A.p向高地址移了一个字节

    B.p向高地址移了一个存储单元

    C.p向高地址移了两个字节

    D.p与a+1等价


    正确答案:A
    解析: 在16位编译系统下,一个int型变量是用16位来存储的,其占用两个字节,当执行p++之后,相当于p向高位移动了一个存储单元,也就是两个字节。因此,本题的答案为选项A)。

  • 第5题:

    1、设数组a的首地址是0x28fe74,则下列程序的执行结果是()。 int a[10]={10,20,30}; int *p; p=a; p++; cout<<p<<endl;

    A.11

    B.20

    C.0x28fe75

    D.0x28fe78


    0x28fe78