int slen(char x[], int n) {
int i, j = 0, m = n;
for (i = 0; i < m; i++)
while (x[i] != '\0') { j++; } // 死循環:i 不變,條件永真
return j;
}
外層 for 遍歷索引 i,內層 while 檢查同一 x[i] 是否為終止符。若非 '\0',j++ 但 i 不變,陷入無限循環。
int slen(char x[], int n) {
int i, j = 0;
for (i = 0; i < n; i++) {
if (x[i] == '\0') break; // 遇到終止符退出
j++;
}
return j;
}
或標準庫 strlen 實現邏輯:
int slen(const char *x) {
int len = 0;
while (x[len] != '\0') len++;
return len;
}
'\0' 即停止。