问题 单项选择题

以下程序的结果是
  #include<iostream.h>
  void main( )
   char * p="abcdefgh",* r;
   long * q;
   q=(long * )p;
   q++;
   r=(char * )q;
   cout < < r < < end1;

A.defg

B.cdef

C.ghab

D.efgh

答案

参考答案:D

解析:【命题目的】字符串指针的考查。
【解题要点】C++语言规定,如果指针变量q已指向数组中的一个元素,则(q++指向同一数组中的下一个元素(而不是将q的值简单的加1)。本题中q是long型指针,每个long型数据占内存字节数为4,所以q++则由当前位置向右移动4个字节,所以最后显示出的是efgh。
【考点链接】请注意 * (P++)与( * p)++的区别。

选择题
问答题