c語言中!是什么意思

C語言中->是什么意思?。?/h3>

c語言中!是什么意思

文章插圖

“->”是一個整體,它是用于指向結構體子數據的指針 , 用來取子數據 。換種說法,如果我們在C語言中定義了一個結構體,然后申明一個指針指向這個結構體,那么我們要用指針取出結構體中的數據 , 就要用到“->” 。問題中的p=p->next  , 意思是將p指向的一個結構體實例中的自數據next賦值給p 。擴展資料:在C語言中,結構體(struct)指的是一種數據結構,是C語言中聚合數據類型(aggregate data type)的一類 。結構體可以被聲明為變量、指針或數組等 , 用以實現較復雜的數據結構 。結構體同時也是一些元素的集合,這些元素稱為結構體的成員(member),且這些成員可以為不同的類型,成員一般用名字訪問 。定義與聲明:結構體的定義如下所示,struct為結構體關鍵字 , tag為結構體的標志,member-list為結構體成員列表,其必須列出其所有成員;variable-list為此結構體聲明的變量 。
c語言中?:和!是什么意思?怎么運用在編程中??:的意思是條件運算符,使用的格式如下(條件)?A:B , 如果條件成立,表達式的值就是A,否則是B 。!的意思是用來取非運算的,!true的結果就是 false!false 的結果是 true 。寫程序中,?:用的比較少,!主要用在條件判斷中 。延展回答:1、C語言是一門通用計算機編程語言,應用廣泛 。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言 。2、盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的C語言程序可在許多電腦平臺上進行編譯 , 甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平臺 。3、C語言一共只有32個關鍵字,9種控制語句,程序書寫形式自由,區分大小寫 。把高級語言的基本結構和語句與低級語言的實用性結合起來 。C 語言可以像匯編語言一樣對位、字節和地址進行操作,而這三者是計算機最基本的工作單元 。
在c語言中=!是什么意思?
c語言中!是什么意思

文章插圖

=!意思“不等于”1、“=”是賦值運算符2、“!”邏輯非運算符,邏輯操作符一般將其操作數視為條件表達式,返回結果為Bool類型:首先對其操作數求值 , 若結果為0,則條件為假(false),否則為真(true) 。3、優先級上“!”先于“=”4、所有比如有下面的式子int i;i=!5;5、根據運算符優先級,!先于=首先5作為!的操作數,求值!5的結果是bool型的false然后false隱士轉換成int型,即0所以i里面的值是整形0擴展資料C語言運算符號:比較特別的是,比特右移(>>)運算符可以是算術(左端補最高有效位)或是邏輯(左端補 0)位移 。例如,將 11100011 右移 3 比特,算術右移后成為 11111100 , 邏輯右移則為 00011100 。因算術比特右移較適于處理帶負號整數,所以幾乎所有的編譯器都是算術比特右移 。運算符的優先級從高到低大致是:單目運算符、算術運算符、關系運算符、邏輯運算符、條件運算符、賦值運算符(=)和逗號運算符 。關系運算符號 :== 、!=參考資料 百度百科-C語言
-> 在c語言中是什么意思?
c語言中!是什么意思

文章插圖

“->”是一個整體,它是用于指向結構體子數據的指針,用來取子數據 。換種說法 , 如果我們在C語言中定義了一個結構體 , 然后申明一個指針指向這個結構體,那么我們要用指針取出結構體中的數據,就要用到“->” 。問題中的p=p->next,意思是將p指向的一個結構體實例中的自數據next賦值給p 。擴展資料struct 結構體類型名 *指針名;//結構體指針struct 結構體類型名 *指針名 = &一個結構體的名字;//結構體指針并賦初值struct 結構體類型名 *指針名 = new struct 結構體類型名;//結構體指針并用new申請內存struct 結構體類型名 *指針名 =(struct 結構體類型名 *)malloc(sizeof(struct 結構體類型名))//結構體指針并用malloc申請內存 使用應包含頭文件stdlib.h//對象指針的定義方法略同 。參考資料:百度百科 ->
C語言中一個感嘆號加一個字母代表什么意思?
c語言中!是什么意思

文章插圖

感嘆號( ! )是 not 的意思 。1、出現于字符串中 , 或者以'!'形式出現時,代表其本意 , 即字符常量 。2、通常都用在比較式,例如 :if (!A){ /*program block A...*/}else{ /*program block B...*/}如果 A = true,!A=false,執行program block B,反之執行program block A.

在C語言中,! 嘆號是啥意思? !! 兩個嘆號又是啥意思呢?感嘆號是運算符,邏輯非 。比如說“!真”也就是假的意思 。
兩個!是為了把非0值轉換成1,而0值還是0 。

因為C語言中,所以非0值都表示真 。所以!非0值 = 0,而!0 = 1 。
所以!!非0值 = 1,而!!0 = 0 。
比如:i=5 !i=0!!i=1

c語言中輸入感嘆號加一個字符是什么意思,比如!a,!b就是相反的意思 。出現于字符串中,或者以'!'形式出現時,代表其本意,即字符常量 。一、電腦常見問題主板不啟動,開機無顯示,有顯卡報警聲 。故障原因:一般是顯卡松動或顯卡損壞 。處理辦法:打開機箱,把顯卡重新插好即可 。要檢查AGP插槽內是否有小異物,否則會使顯卡不能插接到位;對于使用語音報警的主板,應仔細辨別語音提示的內容 , 再根據內容解決相應故障 。如果以上辦法處理后還報警,就可能是顯卡的芯片壞了,更換或修理顯卡 。如果開機后聽到"嘀"的一聲自檢通過,顯示器正常但就是沒有圖像,把該顯卡插在其他主板上,使用正常,那就是顯卡與主板不兼容,應該更換顯卡 。
C語言中關于感嘆號的作用這幾個表達式中感嘆號都是邏輯運算符 "非"

c語言 一個字母后面跟個感嘆號什么意思階乘吧,是數學里面的,m!表示m*(m-1)*...*1 。你確定這出現在代碼里面了?

!=在C語言中是什么意思先說左移,左移就是把一個數的所有位都向左移動若干位,在c中用<<運算符.例如:
int
i
=
1;
i
=
i
<<
2;
//把i里的值左移2位
也就是說,1的2進制是000...0001(這里1前面0的個數和int的位數有關,32位機器,gcc里有31個0),左移2位之后變成000...0100,也就是10進制的4,所以說左移1位相當于乘以2,那么左移n位就是乘以2的n次方了(有符號數不完全適用,因為左移有可能導致符號變化,下面解釋原因)
需要注意的一個問題是int類型最左端的符號位和移位移出去的情況.我們知道,int是有符號的整形數,最左端的1位是符號位,即0正1負,那么移位的時候就會出現溢出,例如:
int
i
=
0x40000000;
//16進制的40000000,為2進制的01000000...0000
i
=
i
<<
1;
那么,i在左移1位之后就會變成0x80000000,也就是2進制的100000...0000,符號位被置1,其他位全是0,變成了int類型所能表示的最小值,32位的int這個值是-2147483648,溢出.如果再接著把i左移1位會出現什么情況呢?在c語言中采用了丟棄最高位的處理方法,丟棄了1之后,i的值變成了0.
左移里一個比較特殊的情況是當左移的位數超過該數值類型的最大位數時,編譯器會用左移的位數去模類型的最大位數,然后按余數進行移位,如:
int
i
=
1,
j
=
0x80000000;
//設int為32位
i
=
i
<<
33;
//
33
%
32
=
1
左移1位,i變成2
j
=
j
<<
33;
//
33
%
32
=
1
左移1位,j變成0,最高位被丟棄
在用gcc編譯這段程序的時候編譯器會給出一個warning,說左移位數>=類型長度.那么實際上i,j移動的就是1位,也就是33%32后的余數.在gcc下是這個規則,別的編譯器是不是都一樣現在還不清楚.
總之左移就是:
丟棄最高位,0補最低位
再說右移,明白了左移的道理,那么右移就比較好理解了.
右移的概念和左移相反,就是往右邊挪動若干位,運算符是>>.
右移對符號位的處理和左移不同,對于有符號整數來說,比如int類型,右移會保持符號位不變,例如:
int
i
=
0x80000000;
i
=
i
>>
1;
//i的值不會變成0x40000000,而會變成0xc0000000
就是說,符號位向右移動后,正數的話補0,負數補1,也就是匯編語言中的算術右移.同樣當移動的位數超過類型的長度時,會取余數,然后移動余數個位.
負數10100110
>>5(假設字長為8位) , 則得到的是
11111101
總之,在c中,左移是邏輯/算術左移(兩者完全相同),右移是算術右移,會保持符號位不變.實際應用中可以根據情況用左/右移做快速的乘/除運算,這樣會比循環效率高很多.
例:c語言中左移>表示除以2 , 這是由計算機工作原理導致的!但是要是7 , 二進制數為0111,右移一位得3.5,但是右移之后二進制數變成0011,是3 。不一樣?。?怎模解釋呢??
答:移位操作符的兩個操作數必須是整型的 。整個移位表達式的值的類型也是整型的,而且,左移位操作符與右移位操作符的運算并不對稱 。0111右移一位是把最后一位的1去掉,左邊補個0 , 得0011,轉換為十進制是3,這是正確的 。并不等同于除以2


"=="在c語言中表示什么意思==
是判斷兩個運算對象是否相等的關系運算符
x
==
y
是一個關系表達式,當變量x和y的內容確實相等時,這個表達式的計算結果為真,否則為假 。
=
是賦值運算符,功能是將符號右側表達式的計算結果送入符號左側的變量當中 。
兩者嚴格不同,前者不會引起任何變量內容的變化 。

c語言中表達式(!x‖y--)是什么意思?條件語句,!是邏輯“非”的符號,"!x"就是x為假的意思 , y--就是y=y-1的意思 。和起來就是判斷x是否為真或者判斷y是否已經自減

c語言中 , cpp是啥意思?C語言和cpp是兩個不同的概念 。
C語言一般指標準的C編程語言,ANSI C 。
而cpp是C語言基礎上的擴展,即所說的C++語言 。其在C的基礎上,增加了類的概念,并引入了引用,重載 , 多態的理念 , 使面向過程的C語言進步到面向對象的C++語言 。同時C++語言完美兼容了C語言 。
CPP的來源為,C++的英文寫法為C Plus Plus,其中Plus為加的英文寫法 。取開頭字母后,C++就別簡寫成了cpp 。
.cpp是C++語言的標準源文件擴展名 。

(x!=0)‖(y!=0)在c語言中是什么意思【c語言中!是什么意思】x不等于0或者y不等于0只要有一個不等于0整個式子就是成立的,反之2個都等于0則不成立

C語言中‖和&&用法沒關系的
地一個 int a=1;相當與定義變量并且初始化
if((a=1)||(b=1)) 的意思是:
首先把 a的值變成 1
然后(a=1)這個算式返回 1 給 if

C語言編程中=和==;&和&& 用法和意義上有什么區別?C與C++的區別
C是一個結構化語言,如譚老爺子所說:它的重點在于算法和數據結構 。C程序的設計首要考慮的是如何通過一個過程,對輸入(或環境條件)進行運算處理得到輸出(或實現過程(事務)控制) , 而對于C++,首要考慮的是如何構造一個對象模型,讓這個模型能夠契合與之對應的問題域,這樣就可以通過獲取對象的狀態信息得到輸出或實現過程(事務)控制 。
所以C與C++的最大區別在于它們的用于解決問題的思想方法不一樣 。之所以說C++比C更先進 , 是因為“ 設計這個概念已經被融入到C++之中 ”,而就語言本身而言,在C中更多的是算法的概念 。那么是不是C就不重要了,錯!算法是程序設計的基礎 , 好的設計如果沒有好的算法,一樣不行 。而且,“C加上好的設計”也能寫出非常好的東西 。
對語言本身而言,C是C++的子集,那么是什么樣的一個子集?從上文可以看出, C實現了C++中過程化控制及其它相關功能 , 而在C++中的C(我稱它為“C+”),相對于原來的C還有所加強,引入了重載、內聯函數、異常處理等等玩藝兒,C++更是拓展了面向對象設計的內容,如類、繼承、虛函數、模板和包容器類等等 。
再提高一點,在C++中,數據封裝、類型這些東東已不是什么新鮮事了 , 需要考慮的是諸如:對象粒度的選擇、對象接口的設計和繼承、組合與繼承的使用等等問題 。
所以相對于C,C++包含了更豐富的“設計”的概念,但C是C++的一個自洽子集,也具有強大的功能,同樣值得學習 。

幾點學習建議:
1.基本概念很重要 。無論學C,還是學C++,基本概念都是第一位的,也是比較困難的 , 但只有把握了基本概念才能把握整體脈絡,才能居高臨下 。
2.C是C++的子集 , 它的基本概念和設計方法相對比較容易理解,初學者可從它入手 。
3.如果要學好C++ , 建議初學者最好別在如VC,BCB平臺下寫程序,那種自動化的代碼生成 , 花花綠綠的界面,會讓你手足無措 。最好先找一片空地(unix,dos),從頭做起,寫幾個大點的程序,數個回合,再到VC,BCB下看看 , 你會輕松得很 。在我看來,學好C/C++是成為VC , BCB高手的必由之路 。
4.不要妄想速成 , 必須得一個byte , 一個bit的去摳,盡量搞清楚每一個問題 。
5.幾本好書:
機械工業出版社的那套“計算機科學叢書”從C到C++,到面向對象設計 , 一應俱全,都TMD是經典中的經典,而且價格公道,童叟無欺 。
國內也有幾本好書,譚老爺子的書好倒是好,就是程序錯誤太多 。強烈推薦清華周之英的《現代軟件工程》(上、中、下),它是我所見到的國內少有的一本好書,精華的精華,要點的要點,細細品來,至少也屬降龍十八掌等級的東東 。

如果還是有人想學習C/C++的話, 有一些小問題我還是樂意解答的. 但是我認為學習C/C++是不重要的, 重要的是如何鍛煉你的思路. 不要找一些連自己都搞不清的問題去做.

我認為雖然 "潭浩強" 同志有騙錢的嫌疑( 我手頭就有一本幾乎一模一樣的英文書 ), 但是, 是他把這本入門手冊引入中國, 使無數程序員了解了C語言, 我想他的功勞也是不可磨滅的. 在 C語言程序設計 >這本書中所有的例子都可以用做鍛煉思路的基石, 他對大家的編程是很有幫助的. 我認為是值得一買的. 去思考課后的例子對你的編程很有幫助. 不要小看一個一個簡單的例子, 他們是你通往成功的道路.

當你基本能夠掌握了上一本書中例子后, 你就要自己找一些例子程序去看. 開始可能是看不懂, 但是只要努力就沒有什么問題. 當你看過幾個較大的例子之后, 你會茅塞頓開, ( 大量閱讀例子程序是學習C/C++的捷徑 ). 你會發現, 你的水平有了顯著的提高. 你看的例子越多, 你對 Windows/DOS 了解的越多. 最好能夠再看一些關于系統知識的書籍. 他會對你的編程很有幫助的.

這是我學習C/C++的一點心得, 希望對沒有被我嚇到而要繼續學習C/C++的朋友們有一些幫助. 免得有些同志說我破壞中國軟件人才的發展.

在最后我祝愿所有堅持學習C/C++的朋友們成功! 同時感謝閱讀過我文章的同志們.

想學好C++,非學C不可?。。?

今天我這么肯定的在這里講這番話,是不想初學者陷入到語言越新越好的誤區,本來這個題目就不是很嚴謹,但是我有幾句話必須講講,為C平反?。?

C++與C有什么不同呢?我們現在一步步地來分析一下
一、類 , 類我并不說它有什么不好,但是對于初學者,它是一個累贅 。類的封裝使得初學者對程序產生厭倦,感到不適和麻煩 。
二、引用,引用是C++中最臭屁的東西了,最好盡量不要用它 , 我就是從來不用引用,除非萬不得已 。引用對于初學者就更容易產生混淆,不知道哪個是引用,哪個是變量 。
三、函數的重載,初學者學函數的重載好像沒什么壞處,但是,這會使初學者潛意識里對C語言的變量類型的重要性產生淡化,要記住C語言是對變量類型最敏感了的 , 變量的類型在C語言里的重要性是不言而喻的 。
四、流操作符,和上面同樣的道理,使得對變量類型的重要性產生淡化,況且 , cin這個東東有點兒不怎么方便 , 有時會產生使初學者莫名其妙的結果 。
五、操作符重載,典型的高級應用 , 初學者可能根本用不著,這個東東會讓他們覺得C++很難,門檻高,看不懂………… 。
六、繼承,以及虛函數 , 典型的模仿四不象,這種狗屁東西除了看起來深奧,實用價值很低……………… 。我怎么可能把某個類的類型的指針去指向另一個不同類型但是是繼承關系的類,來實現什么動態聯編,暈…………
………………還有些東東我就不發表評論了,如:new,delete操作符等…………

七、誤區:以問答形式:
問:C++是面向對象化的而C是面向過程化的?
答:第二對,第一問錯,C++并非完全面向對象化,真正的面向對象化的語言恐怕只有Java才算得上 。
問:C++能實現C所不能的功能嗎?
答:至少我還沒有發現……
問:學了C再學C++有障礙嗎?比如程序設計思想……
答:至少我還沒有看見誰有此癥狀 。
問:學了C再學C++又要重頭開始嗎?
答:不,C++下可以實現C語言的一切功能 。
問:我學完了C一定還要學C++才能編程嗎?
答:完全沒必要 。
問:C++比C好在哪里?
答:更加符合軟件工程學
問:學完了C再學C++是不是很容易?
答:那要看你是不是真正的學完了C語言,我從C到C++就一個星期的睡覺前的時間看兩眼書,然后就大徹大悟 。再跑到這里來發表些狗屁文章了 。

最近在網上看到了很多人的學習方法,本人非常不贊同 。很多人都想一口吃個胖子 , 要學就想學最新的,好象沒有人愿意再去學那些老的,舊的編程語言了 。但你們能學的懂嗎?不學TC2 。0等那些較早的優秀編程語言,你們能理解的了VC6 。0?如果你真的能,我寧愿做你的徒弟!真是奇怪,那些最基本的語言都不懂的人,怎么可能去理解那些最新的編程語言?我學編程有三年了吧 。成績也不算多 , 只有一個計算機四級證和一個高程證,但我覺得我在學VC的時候還有很多的不明白的地方 。沒有人來教我,只能靠我自己,包括所有的成績在內,我都是靠自己 , 我從不報班 。學VC的半年多來,我想我已經基本入門,但依然有很多的困惑 。剛開始學VC,就面臨一個項目 , 我真的猶如笨蛋一般,四處嚇摸,毫無頭緒,最后勉勉強強才算做個差不多 。學好VC再去學其他的高級WINDOWS編程,我想那真是輕而易舉,畢竟WINDOWS的內部的很多東西都能直接被VC調用,你首先就可以對WINDOWS有個全新的認識,再去學其他的語言豈能不簡單?

我的感覺是,面向過程和面向對象,其實都很重要的 , 在VC里也依然需要面向過程,很多東西都是一環扣一環,沒有面向過程的思想,怎么可能去編程呢?建議多去看看有關WINDOWS編程的書,但多數都是比較老的書呦!我依然記得當年整天進行TC編程的辛苦,但我依然很懷念當年的勞動付出 , 畢竟我獲得了我想獲得的一切——編程思想 。我覺得一個好的編程思想,絕對比你去學一門計算機語言好重要的多 。要形成自己的編程風格 。一個好的編程思想在你的頭腦中一旦形成,學習什么語言都會很輕而易舉,因為此時的你不在是簡簡單單的學習,而是來驗證!

C語言編程中=和==;&和&& 用法和意義上有什么區別?c++語言是c語言發展起來的,所以繼承了c語言幾乎所有的特點,但c++語言又有自己的個性 。c語言是一種面向過程的編程語言,而c++主要是面向過程的,因此c++有類的概念,而c語言就沒有 。c++的功能強大,編譯器復雜,適合高端程序的設計和編輯,c語言的編譯器簡易,適合低端程序 。
C語言中的符號 & 和 | 是什么意思?
c語言中!是什么意思

文章插圖

&: 在C語言中有兩種意思 , 一種是取地址符,是單目運算符;另一種是位運算符,表示“按位與”,是雙目運算符 。|: 是位運算符,表示“按位或” 。資料擴展1、符號 & 和 | 這兩個運算符都是二進制的按位操作符 。&: 二進制“與”(都為1時,結果是1,否則是0 。) , 比如:1010 & 1011 = 1010,1010 & 1000 = 1000 。|: 二進制“或”(有1時,結果是1,都是0時,結果為0 。),比如:1010 | 1011 = 1011,1010 | 1000 = 1010 。2、位運算符將數字視為二進制值 , 并按位進行相應運算,運算完成后再重新轉換為數字 。例如:表達式10&15表示(1010 & 1111),它將返回表示1010的值10 。因為真真得真 , 或者是11得1,同位全是1結果也是1 。表達式10|15表示(1010 | 1111),它將返回表示1111的值15 。假假得假 。全零得零 。3、C語言中的符號分為10類:算術運算符、關系運算符、邏輯運算符、位操作運算符、賦值運算符、條件運算符、逗號運算符、指針運算符、求字節數運算符和特殊運算符 。4、位操作運算符:參與運算的量,按二進制位進行運算 。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(>)六種 。
C語言編程中=和==;&和&& 用法和意義上有什么區別?=
是賦值運算符 , 
把=號右邊的值賦值給左邊的變量
==是邏輯運算符,判斷
==兩邊的數據是否相等 , 表達式返回
true或flase
&
是按位與
&&
是邏輯與
兩者都使表達式結果返回true或false
,只是算法不一樣 。

C語言中:&&和||符號是什么意思?這兩個運算符都是二進制的按位操作符 。&: 二進制“與”,如 1010 & 1011 = 1010,1010 & 1000 = 1000 。都為1時,結果是1,否則是0|: 二進制“或” , 如 1010 | 1011 = 1011,1010 | 1000 = 1010 。有1時,結果是1,都是0時,結果為0 。C語言是一門通用計算機編程語言,應用廣泛 。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言 。盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的C語言程序可在許多電腦平臺上進行編譯 , 甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平臺 。
c語言中(感嘆號!)是什么意思?
c語言中!是什么意思

文章插圖

!表示邏輯非,是邏輯運算符,運算對象是真或假 。若表示a不等于0,就寫成a!=0;假設a等于1 , 那a!=0;就是真的,true 。C語言中的符號分為10類:算術運算符、關系運算符、邏輯運算符、位操作運算符、賦值運算符、條件運算符、逗號運算符、指針運算符、求字節數運算符和特殊運算符 。其中邏輯運算符用于邏輯運算 , 包括與(&&)、或(||)、非(!)三種 。擴展資料:1、算術運算符用于各類數值運算 。包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運算 , %)、自增(++)、自減(--)共七種 。2、關系運算符用于比較運算 。包括大于(>)、小于(=)、小于等于(<=)和不等于(!=)六種 。3、邏輯運算符用于邏輯運算 。包括與(&&)、或(||)、非(!)三種 。4、位操作運算符參與運算的量 , 按二進制位進行運算 。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(>)六種 。5、賦值運算符用于賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種 。6、條件運算符這是一個三目運算符,用于條件求值(?:) 。7、逗號運算符用于把若干表達式組合成一個表達式( , ) 。8、指針運算符用于取內容(*)和取地址(&)二種運算 。9、求字節數運算符用于計算數據類型所占的字節數(sizeof) 。10、特殊運算符有括號(),下標[],成員(→,.)等幾種 。
C語言中+=和-=是什么意思?
:
連起來的意思
我舉個例子吧
int
a
=3;
int
b=
2;
int
c;
if(a>b)?(c=a):(c=b);//意思是如果a>b就執行c=a,否則就執行c=b
類似于下面的語句
if(a>b)
{
c=a;
}
else
{
c
=
b;
}

條件運算符是
?
:

表達式為:表達式1?表達式2:表達式3
表達式2是條件成立(邏輯值為1)時整個表達式的取值
表達式3是條件不成立(邏輯值為0)時整個表達式的值
例如:
m<n?x:a+3
a++>=10
&&
b-->20
?
a
:
b
x=3+a>5
?
100
:
200

優先級

條件運算符優先級高于賦值、逗號運算符,低于其他運算符
例如:

m<n
?
x
:
a+3
等價于:(m<n)
?(x)
:(a+3)

a++>=10
&&
b-->20
?
a
:
b
等價于:(a++>=10
&&
b-->20)
?
a
:
b

x=3+a>5
?
100
:
200
等價于:x=
((
3+a>5
)
?
100
:
200
)

結合性

條件運算符具有右結合性
當一個表達式中出現多個條件運算符時,應該將位于最右邊的問號與離它最近的冒號配對,并按這一原則正確區分各條件運算符的運算對象 。
例如:
w<x
?
x+w
:
x<y
?
x
:
y

w<x
?
x+w
:
(
x<y
?
x
:
y)
等價

(w<x
?
x+w
:
x<y)
?
x
:
y
不等價
----歡迎加入------c++部落------------hello
word!--------
無論你是初學者還是專家,只要你熱愛編程、交流、分享,c++部落因為你而精彩~