问题
单项选择题
以下程序的结果是 #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)++的区别。