【C/C++筆記】 C語言運算子優先順序
文章作者:姜南(Slyar) 文章來源:Slyar Home (www.slyar.com) 轉載請註明,謝謝合作。
單目運算子
優先順序 | 運算子 | 名稱或含義 | 使用形式 | 結合方向 | 說明 |
1 | [] | 陣列下標 | 陣列名[常量表達式] | 左到右 | |
() | 圓括號 | (表示式)/函式名(形參表) | |||
. | 成員選擇(物件) | 物件.成員名 | |||
-> | 成員選擇(指標) | 物件指標->成員名 | |||
++ | 後置自增運算子 | ++變數名 | 單目運算子 | ||
-- | 後置自減運算子 | --變數名 | 單目運算子 | ||
2 | - | 負號運算子 | -表示式 | 右到左 | 單目運算子 |
(型別) | 強制型別轉換 | (資料型別)表示式 | |||
++ | 前置自增運算子 | 變數名++ | 單目運算子 | ||
-- | 前置自減運算子 | 變數名-- | 單目運算子 | ||
* | 取值運算子 | *指標變數 | 單目運算子 | ||
& | 取地址運算子 | &變數名 | 單目運算子 | ||
! | 邏輯非運算子 | !表示式 | 單目運算子 | ||
~ | 按位取反運算子 | ~表示式 | 單目運算子 | ||
sizeof | 長度運算子 | sizeof(表示式) | |||
3 | / | 除 | 表示式/表示式 | 左到右 | 雙目運算子 |
* | 乘 | 表示式*表示式 | 雙目運算子 | ||
% | 餘數(取模) | 整型表示式/整型表示式 | 雙目運算子 | ||
4 | + | 加 | 表示式+表示式 | 左到右 | 雙目運算子 |
- | 減 | 表示式-表示式 | 雙目運算子 | ||
5 | << | 左移 | 變數<<表示式 | 左到右 | 雙目運算子 |
>> | 右移 | 變數>>表示式 | 雙目運算子 | ||
6 | > | 大於 | 表示式>表示式 | 左到右 | 雙目運算子 |
>= | 大於等於 | 表示式>=表示式 | 雙目運算子 | ||
< | 小於 | 表示式<表示式 | 雙目運算子 | ||
<= | 小於等於 | 表示式<=表示式 | 雙目運算子 | ||
7 | == | 等於 | 表示式==表示式 | 左到右 | 雙目運算子 |
!= | 不等於 | 表示式!= 表示式 | 雙目運算子 | ||
8 | & | 按位與 | 表示式&表示式 | 左到右 | 雙目運算子 |
9 | ^ | 按位異或 | 表示式^表示式 | 左到右 | 雙目運算子 |
10 | | | 按位或 | 表示式|表示式 | 左到右 | 雙目運算子 |
11 | && | 邏輯與 | 表示式&&表示式 | 左到右 | 雙目運算子 |
12 | || | 邏輯或 | 表示式||表示式 | 左到右 | 雙目運算子 |
13 | ?: | 條件運算子 | 表示式1? 表示式2: 表示式3 | 右到左 | 三目運算子 |
14 | = | 賦值運算子 | 變數=表示式 | 右到左 | |
/= | 除後賦值 | 變數/=表示式 | |||
*= | 乘後賦值 | 變數*=表示式 | |||
%= | 取模後賦值 | 變數%=表示式 | |||
+= | 加後賦值 | 變數+=表示式 | |||
-= | 減後賦值 | 變數-=表示式 | |||
<<= | 左移後賦值 | 變數<<=表示式 | |||
>>= | 右移後賦值 | 變數>>=表示式 | |||
&= | 按位與後賦值 | 變數&=表示式 | |||
^= | 按位異或後賦值 | 變數^=表示式 | |||
|= | 按位或後賦值 | 變數|=表示式 | |||
15 | , | 逗號運算子 | 表示式,表示式,… | 左到右 | 從左向右順序運算 |
說明:
同一優先順序的運算子,運算次序由結合方向所決定。
簡單記就是:! > 算術運算子 > 關係運算符 > && > || > 賦值運算子
相關推薦
【C學習筆記】C語言實現Delphi的Pos()、Copy()、Delete()函式
最近在學習C,深感C指標的強大(和危險),掌握得好,則對記憶體控制如魚得水;掌握不好,輕則得到亂碼,程式異常退出,重則系統藍屏宕機。都說指標是C的靈魂,一點也不為過。 今天拿指標來小試,寫三個字串
【C++學習筆記】C++巨集的定義用法總結
本文轉載自:https://www.cnblogs.com/jjzzx/p/5122494.html 第一種用法——配合條件編譯:#define DEBUG 定義一個叫DEBUG的識別符號。它應該與#ifdef或#ifndef配合使用。舉例如下: #define DEBUG #
【unity3d-C#學習筆記】C#中常用的資料結構及遍歷方法
常用的集合類:ArrayList,Queue,Stack,SortedList,Hashtable 陣列: Array: 1.資料儲存在連續的記憶體上。 2.陣列的語速都是同類型的。 3.陣列
【C/C++筆記】 C語言運算子優先順序
文章作者:姜南(Slyar) 文章來源:Slyar Home (www.slyar.com) 轉載請註明,謝謝合作。單目運算子優先順序運算子名稱或含義使用形式結合方向說明1[]陣列下標陣列名[常量表達式]左到右()圓括號(表示式)/函式名(形參表).成員選擇(物件)物件.成員
【C++學習筆記】運算子過載(二)
我們回顧一下運算子過載的特點: 運算子過載函式名必須為:operator<運算子>。 運算子的過載是通過運算子過載函式來實現的。對於二元運算子過載函式,函式的引數通常為一個即右運算元,運算子的左運算元為呼叫過載函式時的物件。對於一元運算子過載函式,運算子的左運算
【C++學習筆記】運算子過載(一)
在C++中我們定義了自己專屬的類,但是隨著類的增加,以及裡面成員複雜度的提高,以前我們常用的運算子就不能很好的處理新出現的資料型別了,這時,就有一個很“異想天開”的想法了——我們自己定義運算子! 運算子的過載 運算子過載是使同一個運算子作用於不同型別的資料時具有不同的行為。例如我們宣
【筆記】c語言學習筆記part1
最近學習oc,把之前學得很水的c語言重新過了一遍,打算整理一些基礎的東西,方便以後回顧 1.c程式編譯的過程 /* 1.預處理(Preprocessing):對源程式進行“替代”工作,生成一個沒有巨集定義、沒有條件編譯指令、沒有特殊
【學習筆記】c++ 類 過載運算子
最近學校C++學到了類,要求自己實現一個向量類,做了一部分典型的過載運算子,以作筆記。 本類Vector對應的是一個向量,通過一個長度為n的陣列(為了簡化而取int)對應n維向量。 class Vector{//首先是類申明,用的建構函式是預設建構函式,
【工作筆記】C語言的字串真麻煩,好好梳理下
C的字串 C的字串很麻煩,不能像C++那樣對字串+ ,長度又不能隨便變。真TMD煩,有一句粗話真不知道當講不當講。時間全都浪費在處理字串上了。這個筆記中我要好好總結下,避免浪費時間。
【C++ 學習筆記】 MFC CEdit
top 註意 hello lac int 生成 屬性對話框 關聯 額外 環境:VS2008 -關聯變量 方法一:在控件上右鍵-變量-CEdit類型變量-輸入變量名。 方法二:添加代碼 頭文件中定義變量CEdit m_edit_fileName;源文件中變量
【C#學習筆記】 IDisposable 接口
數據 在外 source int word 編寫 osi 圖標 不知道 托管資源指的是.NET可以自動進行回收的資源,主要是指托管堆上分配的內存資源。托管資源的回收工作是不需要人工幹預的,有.NET運行庫在合適調用垃圾回收器進行回收。 非托管資源指的是.
【學習筆記】C# 構造和析構
成員 int 學習 pri [] func 釋放內存 ring 銷毀 構造方法 構造方法是一個特殊的方法,負責初始化對象 構造方法名必須和類名一致 構造方法沒有返回值,但可以有參數,能夠重載 構造方法可以不寫,系統會自動為類添加一個無參的默認構造 如果將構造方法設置為P
【學習筆記】C# 靜態類
實例化 namespace [] line str 過程 ole test 數據 靜態修飾符 用static修飾的成員是靜態成員 靜態成員只能由類來調用 用static修飾的類是靜態類 靜態類不能實例化,只能包含靜態成員和const常量 在內存中一共有五個區域 1
【學習筆記】C# 接口
apple [] oat 訪問 names 使用 foo pub 修飾 使用interface關鍵字定義接口 接口定義一組成員但不直接實現它們 實現接口 實現接口的任何類都必須實現其所有的成員方法 接口不能直接實例化 接口可以包含方法和屬性聲明,不能包含字段 接口中所有
【學習筆記】C# ArrayList
tde 獲取 style demo key ren mov cnblogs content 集合 集合是種容器,在程序中,使用集體管理相關對象組 集合分為非泛型集合和泛型集合 非泛型集合 使用非泛型集合需要引入命名空間System.Collections Arra
【學習筆記】C# 字典
鍵值對 保存 包含 ear 是否 nod 對象 命名空間 不包含 字典 Dictionary是存儲鍵和值的集合 Dictionary是無序的,鍵Key是唯一的 使用時,首先要引入泛型集合命名空間 using System.Collections.Generic;
【編程基礎】C語言常見宏定義
ifd 轉換成 erro get 程序 運算 efi 宏定義 當前 我們在使用C語言編寫程序的時候,常常會使用到宏定義以及宏編譯指令,有的可能比較常用,有的可能並不是很常用,是不是所有的C語言宏定義以及宏指令你都清楚呢? 指令 用途詳細介紹 # 空指令,無任何效果 #i
【C#學習筆記】播放wav文件
con sound ram pan layer oid col med clas using System; using System.Media; namespace ConsoleApplication { class Program
【C#學習筆記】Dictionary容器使用
main 容器 ons move eap app namespace ica gen using System; using System.Collections.Generic; namespace ConsoleApplication { cla
【C#學習筆記】寫文件
pan name iter create open static col main write using System; using System.IO; namespace ConsoleApplication { class Program