C語言學(xué)習(xí)-23.8.19
使用char(字符型)定義時(shí),賦值內(nèi)容要寫于單引號內(nèi)。如用錯(cuò)為雙引號,無論內(nèi)容為什么,輸出結(jié)果都如下。
char的賦值內(nèi)容只可為單個(gè)字母,如寫入多個(gè),只可賦值最右邊一個(gè)字母。 scanf(輸入函數(shù))每次輸入時(shí)需以空格或回車結(jié)束輸入。以空格相隔可以在一行里無限打出整型,以回車結(jié)束則開始運(yùn)行下一段代碼。 無論程序里有幾個(gè)scanf(輸入函數(shù)),無論最終打出多少個(gè)整型,所有整型會(huì)按打出順序依次輸入地址,所有地址輸入完后多余的整型不參與程序運(yùn)行。 并且在scanf(輸入函數(shù))中使用\n(換行符)會(huì)出現(xiàn)bug。
很奇怪,如果\n(換行符)使scanf(輸入函數(shù))多了一行打字空間,那上圖中"b=6"換行后為什么又直接輸出運(yùn)算結(jié)果了呢? 后續(xù)程序:
去掉scanf(輸入函數(shù))中的\n(換行符),以回車結(jié)束輸入,程序正常運(yùn)行。
略作改進(jìn),每次輸入以回車結(jié)束可正常運(yùn)行,但無法放在同一行。
很奇怪,這次第二個(gè)scanf(輸入函數(shù))與上一次bug不同,直接不給輸入了。 推論: 第一次bug中的“b=6”里的“6”是第二個(gè)scanf(輸入函數(shù))里的\n(換行符)導(dǎo)致的。 結(jié)論: 同一個(gè)程序里所有scanf(輸入函數(shù))中的地址總量不變,程序運(yùn)行時(shí)所有打出的整型按先后順序依次填入地扯,如果地址用完了,那么后面的scanf(輸入函數(shù))不會(huì)再給打字機(jī)會(huì); \n(換行符)在printf(打印函數(shù))里運(yùn)行時(shí)只會(huì)換行,在scanf(輸入函數(shù))里運(yùn)行時(shí)會(huì)先給一次打字機(jī)會(huì)再換行。