c語言中“a!”與 “!a”有什么區(qū)別
1、本質(zhì)區(qū)別
雙引號里面的是字符串, 而單引號里面的代表字符。
2、輸出區(qū)別
str = “a”輸出的就是a這個字母;
str = ‘a(chǎn)’輸出的測試65
3、底層區(qū)別
用單引號引起的一個字符實(shí)際上代表一個整數(shù),整數(shù)值對應(yīng)于該字符在編譯器采用的字符集中的序列值。
擴(kuò)展資料:
C 語言中,逗號(,)也可以是運(yùn)算符,稱為逗號運(yùn)算符(Comma Operator)。逗號運(yùn)算符可以把兩個以上(包含兩個)的表達(dá)式連接成一個表達(dá)式,稱為逗號表達(dá)式。其一般形式為:
子表達(dá)式1, 子表達(dá)式2, ..., 子表達(dá)式n
例如:a + b, c = b, c++
逗號運(yùn)算符的優(yōu)先級是所有運(yùn)算符中級別最低的,通常配合 for 循環(huán)使用。逗號表達(dá)式最右邊的子表達(dá)式的值即為逗號表達(dá)式的值。上例中,c++ 的值(c 自增之前的值)即為該表達(dá)式的值。
逗號運(yùn)算符保證左邊的子表達(dá)式運(yùn)算結(jié)束后才進(jìn)行右邊的子表達(dá)式的運(yùn)算。也就是說,逗號運(yùn)算符是一個序列點(diǎn),其左邊所有副作用都結(jié)束后,才對其右邊的子表達(dá)式進(jìn)行運(yùn)算。因此,上例中,c 得到 b 的值后,才進(jìn)行自增運(yùn)算。
參考資料來源:百度百科-C語言
a!如果后面沒有跟別的東西,那么這種語法是錯誤的,!a代表取反,如果用在判斷里面,那么!a就是不滿足a的條件,或者說a本來為真,現(xiàn)在判斷就是為假
a!是什么意思?這個單獨(dú)用是不合法的,只有像這樣a!= 0的形式才行,而!a一般應(yīng)用在判斷語句中,例如int a =3;if(!a){xxxxx},這時!a等價于if(a == 0){xxxxx},希望對你有幫助......
a!不符合C語言語法,無法通過編譯,
!a表示對a取反。
相關(guān)評說:
南崗區(qū)馬耳: ______ a是一個變量,可以是整形或者浮點(diǎn)型,'a'是一個字符,"a"是一個字符串
南崗區(qū)馬耳: ______ a表示數(shù)組的首地址,*a表示a[0]的首地址,這2個地址是一樣的,但是a+1與*a+1這2個的地址就不一樣了,一個表示a[1]的地址,一個表示a[0][1]的地址
南崗區(qū)馬耳: ______ 就你說的,a+=a相當(dāng)于a=a+a,如果a=5,結(jié)果是a=10;a++=a在程序中是錯的,不允許這樣編,我剛剛試過了,編譯不通過,望采納..
南崗區(qū)馬耳: ______ 若a=1并且b=2(執(zhí)行該步操作后,b的值加1為3).邏輯運(yùn)算符是根據(jù)表達(dá)式的值來返回真值或是假值.其實(shí)在C語言中沒有所謂的真值和假值,只是認(rèn)為非0為真值,0為假值.符號 功能&& 邏輯與 || 邏輯或!邏輯非 當(dāng)表達(dá)式進(jìn)行&&運(yùn)算時,...
南崗區(qū)馬耳: ______ 從形參上來說1樣,但作為局部變量用在函數(shù)中時有1定區(qū)分,具體,你可反匯編自己的程序,看其匯編代碼就明白了.
南崗區(qū)馬耳: ______ 一般是賦值為char型,用到單引號,為單個字符,雙引號“a”,是用在字符串的
南崗區(qū)馬耳: ______ a!=0是邏輯運(yùn)算,a值不變,判斷a與0是否相等,整個算式的結(jié)果是真或假,即true或false.a=1是賦值運(yùn)算,讓a的值為1,同時整個算式的結(jié)果也是1.
南崗區(qū)馬耳: ______ 沒有實(shí)質(zhì)性區(qū)別,但是為了防止程序員出現(xiàn)a=0的錯誤,把0寫在前面,若是出現(xiàn)0=a會報(bào)錯.注意a==0與a=0是不一樣的.你是為了比較,一不小心寫成a=0你就杯具了,所以改成數(shù)字在前,是為了防止把==誤寫成=
南崗區(qū)馬耳: ______ 先要理解地址和數(shù)據(jù),你可以想象有很多盒子,每個盒子有對應(yīng)的號碼,那個號碼叫做“地址”,而盒子里放的東西叫做“數(shù)據(jù)”.上面就段理解了,*a和a的區(qū)別就不難解釋了.a是指針變量,用來存放地址,你可以認(rèn)為是上面所說的盒子的號碼,“*”是解引用操作符,你可以把它理解成打開盒子,*a就是打開a號盒子,取出里面的數(shù)據(jù).簡單來說,你記住,a存放的是地址,而*a是讓程序去那個地址取出數(shù)據(jù).
南崗區(qū)馬耳: ______ a[i++] 相當(dāng)于 a[i] i=i+1 a[++i] 相當(dāng)于 i=i+1 a[i] 也就是說 一個先使用i的值,然后改變i的值,一個先改變i的值,然后使用i的值. 例如 如果一開始 i=3 則 a[i++] 就是 a[3] 而 a[++i]就是a[4]