以下程序的输出结果是【 】。 main() { char *p=“abodefgh” *r; lon
以下程序的输出结果是【 】。 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”。
相似问题
实体行政法与程序行政法是以行政法的( )为标准对其所作的划分。A. 调整对象的范围B. 规范的性质C
实体行政法与程序行政法是以行政法的( )为标准对其所作的划分。A 调整对象的范围B 规范的性质C 作用D 功能
执行以下程序后 输出‘’号的个数是【 】。 include<atdio.h> main() { in
执行以下程序后,输出‘’号的个数是【 】。 include<atdio.h> main() { int i,j; for(i=1;i<5;i++) for(j=2;j<=i;j++)putchar(); }请帮忙给出正确答案和分析,谢谢!
若有程序 main() { int i j; scanf('i=%d j=%d' &i &j); p
若有程序 main() { int i,j; scanf( "i=%d,j=%d ",&i,&j); pfintf( "i=%d,j=%d n ",i,j); } 要求给i赋10,给j赋20,则应该从键盘输入【 】。请帮忙给出正确答案和分析,谢谢!
以下程序运行后的输出结果是【 】。 main() {char s[]='9876' *p for(p
以下程序运行后的输出结果是【 】。 main() {char s[]= "9876 ",*p for(p=s;p<s+2;p++)printf( "%s n ",p); }请帮忙给出正确答案和分析,谢谢!
下面可以作为C语言用户标识符的一组是A.void define WORDC.for --abc ca
下面可以作为C语言用户标识符的一组是A.void define WORDC.for --abc caseD.2a D0 sizeof请帮忙给出正确答案和分析,谢谢!
