• 2021-04-14
    在16位编译系统上,若有定义“int a[]={10,20,30},*p=&a;”,当执行“P++;”后,下列说法错误的是()。A.P向高地址移了一个字节 B.P向高地址移了一个存储单元 C.P向高地址移了两个字节 D.P与a+1等价请帮忙给出正确答案和分析,谢谢!
  • 正确A 因为P是整型的指针变量,因此其移动一个位置即两个字节,故选择A选项。

    内容

    • 0

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

    • 1

      若有inta&#91;10&#93;,*p=a;,则()。 A: p++可以使p指向下一个字节 B: p+=2相当于p=sizeof(a)/10 C: p++可以使p指向下一个元素,即a[1]的首地址 D: p+=2可以使p指向下一个元素,即a[1]的首地址

    • 2

      若有以下定义和语句,且0<=i<10,则对数组元素地址的正确表示是( )。int a&#91;&#93;={0,1,2,3,4,5,6,7,8,9},*p;p=a; A: a++ B: &(a+1) C: &p D: &p[i]

    • 3

      float单精度变量,以____个字节为一个存储单元。</p></p> ______

    • 4

      若有定义:int a=4,*p=&a; ,则以下__________均表示地址。 A: a,p B: &a,p C: &a,*p D: .a,*p