大家好! 
我寫了一個程式如下,所以有了陣列會不會傳回一個值這種疑問。
#include <stdio.h>
int main()
{
char ch[100]="A dog is running out!";
int i;
for(i=0; i<=20; i++){
printf("%c",ch[i]);
}
printf("\n");
//What is the situation of for()-loop ?
for(i=0; ch[i]; i++){ //Does an array return a value? //What is that value?
printf("%c",ch[i]);
}
printf("\n");
return 0;
}
程式會正常輸出:
A dog is running out!
A dog is running out!
我的問題點就在第二個 for() 迴圈的條件的陣列。 
1. 『陣列會不會傳回一個值』這說法很奇怪
對陣列來說, 陣列裡的每一個元素本身就是一個『值』
2. for 迴圈的條件式, 是判斷式為真就繼續執行, 判斷式為假就停止執行
所以上面判斷式是判斷 ch[ i ] 的值是『真』還是『假』
當 ch 被填入指定的字串, 由於指定的字串長度不足
陣列後面剩餘的空間會被自動填入『\0』
印完『!』之後, 陣列的下一個元素值是『\0』(false)
所以就『正常』結束迴圈