C語言運算符及其優先級匯總表口訣

C語言運算符及其優先級匯總表口訣
??? 圓下箭頭一頓號
??? 非凡增減富強針地長
??? 三乘除,四加減,五移位
??? 千萬別把魚忘記,它在盛飯的廚子里
??? 小燈大燈燈燈不等
??? 爸喂魚,舅疑惑,裸雞也疑惑
??? 十三姨,十四父,十五逗,兜到低
??? “圓下箭頭一頓號”指的是第15級的運算符。其中圓指的是運算符(),下指的是下標運算符[],箭頭指的是指向結構體成員運算符->,頓號指的是結構體成員運算符、
??? “非凡增減富強針地長”指的是第14級的運算符。其中非指的是邏輯運算符!,凡指的是按位取反運算符~,增減指的是自增和自減運算符++和--,富指的是負號運算符-,強指的是類型轉換運算符(類型),針指的是指針運算符*,地指的是地址運算符&,長指的是長度運算符Sizeof
??? “三乘除,四加減,五移位” 指的是第13級到第11級的運算符。其中三四五并無實際意義,只是起區分級別而已。也可以想象三指的是第13級運算符。乘除指的是乘法運算符*和除法運算符/,加減指的是加法運算符+和減法運算符-,移位指的是左移運算符<<和右移運算符>>
??? “千萬別把魚忘記,它在盛飯的廚子里”指的是求余運算符%,它位于盛飯的廚子里,即指和乘法運算符、除法運算符在一起。
??? “小燈大燈燈燈不等” 指的是第10級到第9級的運算符。其中小燈大燈指的是關系運算符<、<=、>和>=,燈燈指的是等于運算符==,不等指的是不等于運算符!=
??? “爸喂魚,舅疑惑,裸雞也疑惑”指的是第8級到第4級的運算符。其中,爸喂魚之指的是第8級的按位與運算符&,舅疑惑指的是第7級的按位異或運算符^和第6級的按位或運算符||,裸雞也疑惑指的是第5級、第4級的邏輯與運算符&&和邏輯或運算符||
??? “十三姨,十四父,十五逗,兜到低”指的是第3級到第1級的運算符。其中,十三姨指的是條件運算符?: (三有雙重含義,即指?:的優先級別是三,它的運算符類型也是三目,?難道不是姨即疑惑嗎?),十四父的十四沒有實際意義,父指的是賦值運算符=、+=、-=、*=、/=、%=、>>=、<<=、&=、^=和|= ,十五逗指的是第1級的運算符,兜到低指的是15級運算符以,結束。
??? 附錄:C語言運算符及優先級
優先級??????? 運算符??????? 含義????????????????? 運算符類型?????? 結合方向
??? 15??????? ()??????? 圓括號??????????????????????????? 單目?????????? 自左向右
??????? []??????? 下標運算符
??????? —>??????? 指向結構體成員運算符
??????? 、??????? 結構體成員運算符
??? 14??????? !??????? 邏輯非運算符??????????????????????????????????????? 自右向左
??????? ~??????? 按位取反運算符
??????? ++??????? 自增運算符
??????? --??????? 自減運算符
??????? -??????? 負號運算符
??????? (類型)??????? 類型轉換運算符
??????? *??????? 指針運算符
??????? &??????? 地址運算符
??????? Sizeof??????? 長度運算符
??? 13??????? *??????? 乘法運算符??????????????????????????? 雙目????????? 自左向右
??????? /??????? 除法運算符
??????? %??????? 求余運算符
??? 12??????? +??????? 加法運算符
??????? -??????? 減法運算符
??? 11??????? <<??????? 左移運算符
??????? >>??????? 右移運算符
??? 10??????? <、<=、>、>=??????? 關系運算符
??? 9??????? ==??????? 等于運算符
??????? !=??????? 不等于運算符
??? 8??????? &??????? 按位與運算符
??? 7??????? ^??????? 按位異或運算符
??? 6??????? |??????? 按位或運算符
??? 5??????? &&??????? 邏輯與運算符
??? 4??????? ||??????? 邏輯或運算符
??? 3??????? ?:??????? 條件運算符????????????????????????? 三目????????? 自右向左
??? 2??????? =、+=、-=、*=、
?????????? /=、%=、>>=、
?????????? <<=、&=、^=、|=?? 賦值運算符???????? 雙目
??? 1??????? ,??????? 逗號運算符????????????????????????????? 雙目???????? 自左向右
??? ②括號成員第一;??????? //括號運算符[]() 成員運算符.? ->??? 全體單目第二;??????? //所有的單目運算符比如++ -- +(正) -(負) 指針運算*&
??? 乘除余三,加減四;?? //這個"余"是指取余運算即%
??? 移位五,關系六;??? //移位運算符:<< >> ,關系:> < >= <= 等
??? 等于(與)不等排第七;??? //即== !=
??? 位與異或和位或;??? //這幾個都是位運算: 位與(&)異或(^)位或(|)
??? "三分天下"八九十;
??? 邏輯或跟與?????????? //邏輯運算符:|| 和 &&
??? 十二和十一;??????????? //注意順序:優先級(||)? 底于 優先級(&&)
??? 條件高于賦值,?????? //三目運算符優先級排到 13 位只比賦值運算符和","高//需要注意的是賦值運算符很多!
??? 逗號運算級最低!?? //逗號運算符優先級最低
??? 由于C語言的運算符優先級與C++的不完全一樣(主要是增加了幾個運算符),所以這個口訣不能完全實用于C++.但是應該能夠兼容,大家可以比較一下他們的區別應該就能夠很快掌握C++的優先級的!

??? ((*strDest++=*strSrc++)!='\0');? :
??? 重點:++后增運算符優先級高于*
??? 1.*strDest++相當于 *(strDest++)
??? 2.由于是后自增,故執行順序為:
?????????????? *strDest=*strSrc
?????????????? strDest++ strsrc++? //該級順序不明
????????????? 將*strDest與'\0'比較 //即,整個表達式的值為*strDest與'\0'的比較結果
??? 值得注意的是,對于賦值表達式,表達式本身的值等于左邊子表達式的值。
??? 通過以上深入的分析,我們知道這個表達式完成了以下多個功能:
???   1.對于指針strDest, strSrc,將strSrc所指的內存空間的值賦給由strDest所指的內存空間。
???   2.判斷賦值后的strDest所指的內存空間的指是否等于0。
???   3.對于指針strDest,strSrc,他們的值分別加1,即指向下一個元素。
??? 即:該表達式實現了以下三個功能:
???   1.對于指針strDest, strSrc,將strSrc所指的內存空間的值賦給由strDest所指的內存空間。
???   2.判斷賦值后的strDest所指的內存空間的值是否等于0。
???   3.對于指針strDest,strSrc,他們的值分別加1,即指向下一個元素。

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

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

相關文章

laraval如何使用tdd

1.首先新建一個laravel birdboard項目 composer create-project --prefer-dist birdboard 2.新建單元測試 php artisan make:test ProjectTest 3.書寫單元測試 對于初學著來說&#xff0c;最好先預測tdd即將要出現的錯誤&#xff0c;然后進行測試&#xff0c;判斷是否和自…

讓你頁面速度飛起來 Web前端性能優化

百度網盤下載 第1章 課程簡介對課程做簡單的介紹。第2章 資源合并與壓縮通過本章&#xff0c;我們學習和理解了web前端的概念&#xff0c;以及性能優化的意義所在&#xff0c;并且通過實戰中的壓縮與合并&#xff0c;深入理解了減少http請求數和減少http請求資源大小兩個優化要…

spring-data-JPA使用JpaRepository注解自定義SQL查詢數據庫多表查詢

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一. 首先在Entity注解的類里面要寫好外鍵關系. 這個 ManyToOne 注解可以建立外鍵關系, 不要在自己傻傻的寫一個 private int grades_id…

工廠示例

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; using System.Reflection;namespace Common.DALFactory {/// <summary>/// 數據層對象實例創建/// </summary>public partial class DbFacto…

手把手教你如何優化C語言程序

程序進行優化&#xff0c;通常是指優化程序代碼或程序執行速度。優化代碼和優化速度實際上是一個予盾的統一&#xff0c;一般是優化了代碼的尺寸&#xff0c;就會帶來執行時間的增加&#xff0c;如果優化了程序的執行速度&#xff0c;通常會帶來代碼增加的副作用&#xff0c;很…

posman使用教程

1.新建文件夾 2.新建請求&#xff0c;右擊文件夾&#xff0c; 3.點開測試文件&#xff0c;有get,put,post方法&#xff0c;我經常使用的是put方法&#xff0c;區別我就不講了 4.我基本上填在body里面 5.這是基本的使用&#xff0c;我來更高級一點添加環境變量&#xff0c;一共有…

Linux實戰教學筆記42:squid代理與緩存實踐(一)

第1章 Squid介紹 1.1 緩存服務器介紹 緩存服務器&#xff08;英文意思cache server&#xff09;,即用來存儲&#xff08;介質為內存及硬盤&#xff09;用戶訪問的網頁&#xff0c;圖片&#xff0c;文件等等信息的專用服務器。這種服務器不僅可以使用戶可以最快的得到他們想要的…

Mysql中DATE_SUB 使用方法結合查詢一天內,一周內,一月內的信息實例講解

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 在對數據查詢或菜單時經常要對指定的時間或時間段進行查詢,例如要查詢一天內的信息,要查詢一周內的信息,要查詢一個月內的,南昌網站建設公…

mac電腦php中安裝swoole擴展件

1.首先更新php版本&#xff0c;如果已經是最新的請忽略&#xff0c; &#xff08;1&#xff09;查看是否安裝php brew search php &#xff08;2&#xff09;安裝最新版本php brew install php 2.查看是否安裝openssl&#xff0c;安裝了請忽略 &#xff08;1&#xff09;查看…

再談C語言指針—指向另一指針的指針

一、回顧指針概念 早在本書第貳篇中我就對指針的實質進行了闡述。今天我們又要學習一個叫做“指向另一指針地址”的指針。讓我們先回顧一下指針的概念吧&#xff01;當我們程序如下聲明變量&#xff1a;short int i;char a;short int * pi;程序會在內存某地址空間上為各變量開辟…

Java練習 SDUT-1586_計算組合數

計算組合數 Time Limit: 1000 ms Memory Limit: 32768 KiB Problem Description 計算組合數。C(n,m),表示從n個數中選擇m個的組合數。 計算公式如下&#xff1a; 若&#xff1a;m0&#xff0c;C(n,m)1 否則&#xff0c; 若 n1&#xff0c;C(n,m)1 否則&#xff0c;若mn&#xf…

mysql日期時間操作函數詳解

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 win7可以設定每周從哪一天開始&#xff0c;win2003等不能方便的修改。有的是周日開始&#xff0c;有的是周一開始。而工作中有的時候每周…

對C語言進行調試的最好方法是什么?

要了解調試程序的最好方法&#xff0c;首先要分析一下調試過程的三個要素&#xff1a;應該用什么工具調試一個程序?用什么辦法才能找出程序中的錯誤?怎樣才能從一開始就避免錯誤?應該用什么工具調試一個程序?有經驗的程序員會使用許多工具來幫助調試程序&#xff0c;包括一…

如何賦值hook定義的變量

1、定義變量 const { tableProps, mutate} useRequest(async (params {}) > {const { success, data, total } await Api.getUserAccountApi({page: params.current || 1,...searchValue,});return {list: success ? data : [],total: success ? total : 0,};},{pagin…

java中的sleep()和wait()的區別

對于sleep()方法&#xff0c;我們首先要知道該方法是屬于Thread類中的。而wait()方法&#xff0c;則是屬于Object類中的。sleep()方法導致了程序暫停執行指定的時間&#xff0c;讓出cpu該其他線程&#xff0c;但是他的監控狀態依然保持者&#xff0c;當指定的時間到了又會自動恢…

Webpack4干貨分享(二),使用loader處理scss,圖片以及轉換JS

轉載請注明出處&#xff1a; 葡萄城官網 &#xff0c;葡萄城為開發者提供專業的開發工具、解決方案和服務&#xff0c;賦能開發者。 原文出處&#xff1a; https://wanago.io/2018/07/16/webpack-4-course-part-two-webpack-4-course-part-two-loaders/今天繼續我們的Webpack 4…

spring-data-jpa 介紹 復雜查詢,包括多表關聯,分頁,排序

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 本篇進行Spring-data-jpa的介紹&#xff0c;幾乎涵蓋該框架的所有方面&#xff0c;在日常的開發當中&#xff0c;基本上能滿足所有需求。…

重寫laravel的request的校驗器

protected function failedValidation(Validator $validator) {$error $validator->errors()->all();throw new HttpResponseException(response()->json([data>[],code>500,msg>$error[0]], 500)); }

如何檢測C語言中的內存漏洞(leak)?

在動態分配的內存單元(即由函數malloc()或ealloc()分配的內存單元)不再使用卻沒有被釋放的情況下&#xff0c;會出現內存漏洞。未釋放內存單元本身并不是一種錯誤&#xff0c;編譯程序不會因此報告出錯&#xff0c;程序也不會因此而立即崩潰。但是&#xff0c;如果不再使用而又…

Oracle中row_number()、rank()、dense_rank() 的區別

link:https://www.cnblogs.com/qiuting/p/7880500.html轉載于:https://www.cnblogs.com/Spring-Rain/p/9716213.html