以下程序的结果是
#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)++的区别。