考虑以下C程序段:
char p[20];
char *s = "string";
int length = strlen(s);
int i;
for (i = 0; i < length; i++)
p[i] = s[length — i];
printf("%s", p);
程序的输出是? (GATE CS 2004)
(A)肚兜
(B)刺
(C)字符串
(D)没有输出答案: (D)
说明:让我们考虑一下for循环内的下面一行
p [i] = s [length — i];
对于i = 0,p [i]将为s [6_0],而s [6]为’\ 0′
因此p [0]变为’\ 0’。不管p [1],p [2] …..是什么,因为当i> 0时P [0]不会改变。如果我们打印第一个字符’\ 0’的字符串,则不会打印任何内容这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。