以下程序的输出结果是【 】。 main() { char *p=“abodefgh”,*r; long *q; q=(long*)p; q++; r=(char*)q; printf(“%s\

admin2010-01-10  39

问题 以下程序的输出结果是【  】。
   main()
   { char *p=“abodefgh”,*r;
     long *q;
     q=(long*)p;
     q++;
     r=(char*)q;
     printf(“%s\n”,r);
   }

选项

答案efgh

解析 本题定义了一个字符型指针变量p并通过赋初值让它指向了一个字符串,定义了另一个字符型指针变量r和一个长整型指针变量q。首先通过语句“q=(long*)p;”把P的地址值强制转换为长整型地址值并赋值给q,然后执行“q++;”,地址值增加了4,执行语句“r=(char*)q;”,把长整型指针变量q的值再强制转换成字符型地址值并赋给 r,r的值应为字符串中字符“e”的地址,最后输出,指向的字符中,是“efgh”。
转载请注明原文地址:https://jikaoti.com/ti/88I0FFFM
0

随机试题
最新回复(0)