為什麼除錯過程中下面兩行程式碼被跳過?
作者:由 匿名使用者 發表于 體育時間:2021-12-06
方便各位大佬看,提問裡面刪了暫時無關的東西,原始碼如下:
#include
#include
#define MAXN 20
typedef enum {false, true} bool;
bool palindrome( char *s );
int main()
{
char s[MAXN];
scanf(“%s”, s);
if ( palindrome(s)==true )
printf(“Yes\n”);
else
printf(“No\n”);
printf(“%s\n”, s);
return 0;
}
/* 你的程式碼將被嵌在這裡 */
bool palindrome( char *s )
{
char *p;
p=s;
for (;*p != ‘\0’;p++)
;
p——;
for (;*s == *p;s++,p——)
;
if (p-s==0||p-s==1)
return true;
else
return false;
}
你的第一個for目的是把指標p移動到字串末尾的‘\0’,很好理解。
不過為什麼是*p!=‘\0’?不是*p讀到‘\0’才退出嗎?
幫你把問題下的程式碼編輯到程式碼塊裡了。
上一篇:不鏽鋼雙卡壓管件連線工藝原理
下一篇:壓縮彈簧的加工工藝