嘿,昨天我已经参加了 GATE 考试,在这次考试中有一个问题:
以下 C 程序片段打印什么?
char c [] = "GATE2011";
char *p =c;
printf ( "%s", p+p [3] − p [1]) ;
options:
(A) GATE2011
(B) E2011
(C) 2011
(D) 011
答案是'C
'。当我在我的电脑上尝试代码时但是怎么样?
提前致谢
这就是指针算术:
char c [] = "GATE2011";
// indices: 01234567
char *p =c;
p[1]
is A
字符代码,p[3]
is E
字符代码,它们的区别(E
代码减去A
代码)为 4,然后将该差值添加到p
指针,你就得到了地址2011
子串传入printf()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)