有如下数组定义语句“char s[]=“abcd” ”; 则下列语句执行后的输出结果是( )。
char *p=s;
while(*p)
p++; for(p--;p-s>=0;p--)
puts(p);
A. abcdbcdcdd B. abcd C. dcdbcdabcd D. dcba
选C有图有真相
数组s有5个char类型大小的空间,分别存放着a,b,c,d,\0;
字符指针p初始指向s数组的第一个字符a;
while循环,开始p指向的是a,非零执行循环体使得p指向下一个字符b;
直到p指向最后一个\0的时候跳出while循环\0是转义字符表示NULL其整数值就是零;
开始for循环,指针P先倒退一个指向d,puts函数将以d开头的字符串输出并换行;
指针在倒退一个指向c,puts函数将以c开头的字符串输出;
直到P的地址不在大于S的地址为止,即p指向数组的首地址S 的时候,也是P指向a 的时候;
最后一次将以a开头的字符串输出;
来自:求助得到的回答