就說說B和C的區別吧
B中,if(a=b)這個語句也是合法的,
只不過不是壹個判斷a,b是否相等的語句,
而是壹個將b值賦給a,並判斷返回值的語句。
“=”處理的返回值就為所賦的值,所以a=b的返回值為5,
if條件成立。
C中,a<=b是不能這麽寫的,應該寫為(a<b)||(a==b)
2.
a
b
cdef
由於在輸入時有回車的(回車也是作為char輸入的),上面這個輸入其實是:
a 回車
b 回車
cdef 回車
由於N為6,所以c[N]的成員就為:
c[0]:a
c[1]:\n
c[2]:b
c[3]:\n
c[4]:c
c[5]:d
其他的字符由於超出數組c的存儲範圍,就忽略了。
所以,輸出為:
a
b
cd
3.
do/while循環,由於壹開始是do語句,必然執行,所以至少執行壹次。
do執行完畢後,判斷while條件不成了,跳出循環。
所以執行了壹次。
4.
不說明數組的行數是符合語法的,因為可以根據列數和數組成員個數推算出,而只有行數,是不行的,就會出現類似於變量聲明數組的錯誤。
至於書籍,就仁者見仁,智者見智吧:)