A-A+

以下程序的输出结果是______。 main() { char *p-abcdefgh

2022-08-12 19:24:10 问答库 阅读 197 次

问题详情

以下程序的输出结果是______。 main() { char *p-"abcdefgh",*r; long *q; q=(long*)p; q++; r=[char*)q; printf("%sn",r); }


请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:efgh
本题定义了一个字符型指针变量p并通过赋初值让它指向了一个字符串,定义了另一个字符型指针变量r和一个长整型指针变量q。首先通过语句“q=(long*)p;”把P的地址值强制转换为长整型地址值并赋值给q,然后执行“q++;”,地址值增加了4,执行语句“r=(char*)q”,把长整型指针变量q的值再强制转换成字符型地址值并赋给r,r的值应为字符串中字符“e”的地址,最后输出r指向的字符串,是“efgh”。

考点:程序