A-A+
以下程序的结果是 #include<iostream.h> void main() { ch
问题详情
以下程序的结果是 #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)++的区别。