比如:char p ='abcd';printf("p = %c", p)
為什么可以列印出p的值為d
再有如果是char p = 'abcde';printf("p = %c", p)
這樣會出錯說p后邊的賦值太大了(就是超過四個字符)
uj5u.com熱心網友回復:
有大神解釋下嗎,今天突然碰到這個型別題uj5u.com熱心網友回復:
1.%c是字符輸出2.''這種符號是單個字符,a,b,c,d,e都算一個字符,但是如果連在一起,就是字串,附值應該是用char *p或者是char p[5]
uj5u.com熱心網友回復:
這道題多處錯誤,字串應該用“ ”,字符用單引號,雙引號框起來的字串代表地址,uj5u.com熱心網友回復:
為什么單引號里邊放了多個字符也可以編譯通過,然后把最后一個字符賦值給字符變數p
uj5u.com熱心網友回復:
定義的p是一個字符變數,就是單引號里邊本應該只有一個字符,但是放了多個字符也可以編譯運行通過,自動取最后一個字符給了p
uj5u.com熱心網友回復:
char型別理論上也是int型別,因為接受的是ASCII碼,char a ='abc', 就是在反復把一個int的值(97,98,99)賦給a,只會警告你,但是不算語法錯誤uj5u.com熱心網友回復:
p是字符變數不是字串指標或陣列。因此char p = 'abcd';這樣賦值是有問題的,''是表示一個字符,既然是問題的賦值操作,結果可能是未定義的。uj5u.com熱心網友回復:
我回答一下第一個問題,比方說c語言中char型別一般是一個位元組,系統只會查看后8位,所以p是d;轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/53596.html
標籤:C語言
