三目運算符_C語言知識點:運算符的優先級和結合性

35844b1a1c7ca391222380feec09fcd5.png

運算符是一種告訴編譯器執行特定的數學或邏輯操作的符號。

C語言內置了豐富的運算符,大體可分為10類:算術運算符、關系運算符、邏輯運算符、位操作運算符、賦值運算符、條件運算符、逗號運算符、指針運算符、求字節數運算符和特殊運算符。

根據運算符可操作的操作數的個數,可把運算符分為一元運算符、二元運算符和多元運算符(一般三元)。

1、算數運算符

用于數值計算,包括:加(+)、減(-)、乘(*)、除(/)、求余(%)、自增(++)、自減(--)。

2、關系運算符

用于比較運算,包括:大于(>)、小于(=)、小于等于(<=)、不等于(!=)。

3、邏輯運算符

用于邏輯運算,包括:與(&&)、或(||)、非(!)。

4、位操作運算符

按二進制位進行運算,包括:位與(&)、位或(|)、位非(~)、 位異或(^)、左移(<>)。

5、賦值運算符

用于賦值運算,包括:簡單賦值(=)、復合算術賦值(+=、-=、*= 、/=、%=)以及復合位運算賦值(&=、|=、^=、>>=、<<=)等。

6、條件運算符

用于條件求值,三目運算符:(x > y) ? x : y。C語言中有且只有這一個三目運算符。

7、逗號運算符

用于把若干表達式組合成一個表達式:表達式1 , 表達式2。

8、指針運算符

用于取內容(*)和取地址(&)兩種運算。

9、求字節數運算符

用于計算數據類型所占的字節數(sizeof)。

10、特殊運算符

包括括號()、數組下標[]、成員(-> 和 .)等。

f96974e1a5cda958573cf4fbfaefd9c1.png

比如式子“x = 1 + 2 * 3 / 4”,需要先計算乘再計算除,然后是加,最后是賦值。這里介紹下關于運算符在參與運算過程中的兩個概念:

  • 優先級:當不同運算符優先級不同時,先計算誰后計算誰
  • 結合性:當不同運算符優先級相同時,先計算誰后計算誰

運算符的優先級和結合性

c85add23af37a242a85295c82d1f07ff.png

作為初學者,當一個表達式中有多個運算符時,如果不知道哪個優先級高哪個優先級低就可以查一下優先級表,等用的時間長了自然而然就記住了。而且,事實上在編程的時候也不需要考慮優先級的問題。因為如果不知道優先級高低的話,加一個括號就可以了,因為括號( )的優先級是最高的。

另外,大多數運算符的結合性都是從左往右。從右向左的一個是單目運算符,另一個是三目運算符,還有一個就是雙目運算符中的賦值運算符=。運算符的“結合性”也不用死記,在不斷使用中就記住了。

擴展閱讀:

C語言:一種高效、易學的編程語言

C語言的內存分配方式:堆和棧

C程序中常見的與內存相關的錯誤

GCC編譯C語言程序的全過程

C語言中靜態庫和動態庫簡介

f9c9dc978e02f81001ef641b9d49880e.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445862.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445862.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445862.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

可以直接進行運算么_WORD辦公技巧:如何直接在WORD中進行加法、乘法運算?

排版目標下圖文檔中有一張2020年&#xff11;&#xff0d;&#xff13;月口罩購買情況統計表&#xff0c;數據量并不大&#xff0c;我們想不動用excel表格進行統計&#xff0c;直接利用WORD自帶的函數公式計算出表格內空白單元格的數值。其中&#xff0c;金額&#xff1d;單價&…

對dladdr未定義的引用

參考鏈接 c - 為什么我得到“對dladdr的未定義引用”&#xff0c;即使是這個簡單程序的-ldl&#xff1f; | 碼農俱樂部 - Golang中國 - Go語言中文社區 注意事項 dladdr需要與-ldl鏈接&#xff0c;且-ldl放置在鏈接的最后 CMakeLists.txt 模板 cmake_minimum_required(VERSI…

如何優雅互換Map鍵與值

一般方法 //map must be a bijection in order for this to work properly public static <K,V> HashMap<V,K> reverse(Map<K,V> map) {HashMap<V,K> rev new HashMap<V, K>();for(Map.Entry<K,V> entry : map.entrySet())rev.put(entry…

python程序設計題怎么寫_《Python語言程序設計基礎》第1章程序練習題

本文為中國大學MOOC《Python語言程序設計》課程學習筆記&#xff0c;課程主講&#xff1a;嵩天老師&#xff0c;練習平臺&#xff1a;Python123&#xff0c;參考教材&#xff1a;《Python語言程序設計基礎》1.1 字符串拼接Str1 input("請輸入一個人的名字&#xff1a;&qu…

《劍指Offer》36:二叉搜索樹與雙向鏈表

題目 輸入一棵二叉搜索樹&#xff0c;將該二叉搜索樹轉換成一個排序的雙向鏈表。要求不能創建任何新的節點&#xff0c;只能調整樹中節點指針的指向。比如&#xff0c;輸入下圖中的二叉搜索樹&#xff0c;輸出轉換之后的排序雙向鏈表。 二叉樹節點的定義如下&#xff1a; pub…

窗口位置按鈕取消_VBA002:“宏”的保存位置有哪幾種方式?

商務合作請加微信 | Allen_Lyq文章投稿 | jiangjunpeng1996126.com微信公眾號 | Word和Excel達人先生頭條號 | 跟小小筱學辦公技能通過上一篇文章的學習&#xff0c;我們已經知道宏的基本用法&#xff0c;在錄制宏的過程中&#xff0c;還有幾個點需要我們注意下&#xff1a;宏命…

《劍指Offer》60:n個骰子的點數

題目 把n個骰子扔在地上&#xff0c;所有骰子朝上一面的點數之和為S。輸入n&#xff0c;打印出S的所有可能的值出現的概率。 分析 直接法 假設骰子有face面&#xff0c;有n個骰子&#xff0c;那么總排列數就有face?個。&#xff08;例如&#xff0c;有3個6面骰子&#xff…

fastjson解析多層數據_怎么解析三層List json數據

注意這個json格式不對前后的 [ ] 應該要去掉。 (我不是說你缺少的結束符)FastJSON 隨意解決的事情。0, compile com.alibaba:fastjson:1.2.71&#xff0c;去這個網站 http://www.jsonschema2pojo.org/粘貼你的json字符串1.1 Source type:JSON1.2 Annotation style:NONE1.3 所有…

《劍指Offer》37:序列化二叉樹

題目 請實現兩個函數&#xff0c;分別用來序列化和反序列化二叉樹。 分析 我們清楚可以通過前序遍歷序列和中序遍歷序列創造出一棵二叉樹。因此&#xff0c;我們可以先把一棵二叉樹序列化成一個前序遍歷序列和一個中序遍歷序列&#xff0c;然后在反序列化時通過這兩種序列還…

c linux 判斷ip合法_shell 檢測ip的合法性與檢測網絡掩碼的合法性

有時我們需要檢測IP輸入的正確性與網絡掩碼的正確性&#xff0c;用shell腳本寫的&#xff1a;#驗證ip地址的正確性check_ip_format(){echo $1 | grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$" > /dev/nullif [ $? 1 ]; thenreturn 1elseaec…

《劍指Offer》38:字符串的排列

題目 輸入一個字符串&#xff0c;打印該字符中字符的所有排列。 例如&#xff0c;輸入字符串abc&#xff0c;則打印出由字符a、b、c所能排列出來的所有字符串有abc、acb、bac、bca、cab、cba 分析 把一個字符串看成由兩部分組成&#xff1a;第一部分是它的第一個字符&#…

含有js的英文單詞_JavaScript 常用單詞整理

JS單詞push :添加一個數組元素document &#xff1a;文檔pop &#xff1a;刪除最后一個數組元素console &#xff1a;控制臺shift &#xff1a;刪除第一個數組元素string &#xff1a;字符串Concat 組合數組undefined &#xff1a;未定義typeof &#xff1a;關鍵字join&#xf…

《劍指Offer》23:鏈表中環的入口節點

題目 若一個鏈表中包含環&#xff0c;如何找出的入口結點&#xff1f;如下圖鏈表中&#xff0c;環的入口節點的節點3。 分析 一快&#xff08;移兩節點&#xff09;一慢&#xff08;移一節點&#xff09;兩指針判斷鏈表是否存在環。算出環有幾個節點&#xff08;上一步的兩指…

mysql數據庫上機題_MYSQL數據庫練習題操作(select)大全

1、 查詢Student表中的所有記錄的Sname、Ssex和Class列。select sname,ssex,class fromstudent;2、查詢教師所有的單位即不重復的Depart列。select distinct depart fromteacher;3、 查詢Student表的所有記錄。select * fromstudent;4、 查詢Score表中成績在60到80之間的所有記…

Java中<? super T>和List<? extends T>的區別

Java中<? super T>和List<? extends T>的區別 <? extends T> 下面通配符聲明List<? extends Number> foo3的賦值式是合法的&#xff1a; List<? extends Number> foo3 new ArrayList<Number>(); // Number "extends" …

mysql書寫規則_每天10分鐘帶你學會MySQL(二)SQL語句的基本書寫規則

SQL語句時必須要遵守一些規則。這些規則都非常簡單&#xff0c;接下來就讓我們逐一認識一下吧。1&#xff0c;SQL語句以分號(;)結尾。■SQL語句要以分號(;)結 尾一條SQL語句可以描述一個數據庫操作。在RDBMS當中&#xff0c;SQL語句也是逐條執行的。眾所周知&#xff0c;我們在…

《劍指Offer》52:兩個鏈表的第一個公共節點

題目 輸入兩個鏈表&#xff0c;找出它們的第一個公共節點。 public static class ListNode{public int val;public ListNode next;public ListNode(int val) {this.val val;} }分析 首先遍歷兩鏈表的長度。在第二次遍歷的時候&#xff0c;在較長的鏈表上先走若干步&#xf…

mysql win 64_win10下裝mysql-5.7.18-winx64

步驟1官網下載地址&#xff1a;https://dev.mysql.com/downloads/mysql/選擇手動安裝版&#xff1a;解壓到D盤mysql文件夾下&#xff1a;比以往的版本里缺少了兩個.ini文件&#xff0c;直接copy過來&#xff0c;進行修改,my.ini&#xff1a;[client]port3306default-character-…

《劍指Offer》62:圓圈中最后剩下的數字(約瑟夫環)

題目 0,1,2…,n-1這n個數字排成一個圓圈&#xff0c;從數字0開始&#xff0c;每次從這圓圈你刪除第m個數字。求出這個圓圈里剩下的最后一個數字。 例如&#xff0c;0、1、2、3、4這5個數字組成一個圓圈&#xff0c;從數字0開始每次刪除第3個數字&#xff0c;則刪除的前4個數字…

mysql數據庫老是被鎖怎么解決_Mysql數據庫全局鎖是如何引起的,如何解決?

2019-01-08 回答樂觀鎖與悲觀鎖不同的是&#xff0c;它是一種邏輯上的鎖&#xff0c;而不需要數據庫提供鎖機制來支持當數據很重要&#xff0c;回滾或重試一次需要很大的開銷時&#xff0c;需要保證操作的acid性質&#xff0c;此時應該采用悲觀鎖而當數據對即時的一致性要求不高…