【发布时间】:2014-05-18 13:42:03
【问题描述】:
谁能帮我解释一下这个反句代码?第一个和第二个循环如何工作?它们各自的意义何在?
main(){
char arr[255], *p;
printf("Enter string: ");
gets(arr);
for(p=arr; *p!='\0'; p++);
for(p--; p>=arr; p--){
printf("%c",*p);
}
}
输入:
I love you
输出:
uoy evol I
【问题讨论】:
-
第一个循环用于获取用户键入的字符串末尾的内存位置地址。第二个循环用于从该点开始反转字符串。
-
Is 具有未定义的行为,因为当
p为arr时,p--未定义。这意味着它可以做任何事情。 -
你自己做了什么来明白这一点?