目錄
創新互聯公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都做網站、網站設計、外貿營銷網站建設、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的錫山網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!1、算術操作符
2、移位操作符
3、位操作符
1、不能創建臨時變量(第三個變量),實現兩個數的交換
4、賦值操作符
5、單目操作符
6、關系操作符
7、邏輯操作符
8、條件操作符
9、逗號表達式
10、下標引用、函數調用和結構成員
1、[ ] 下標引用操作符
2、( ) 函數調用操作符
3、訪問一個結構的成員
11、表達式求值
1、隱式類型轉換
2、算術轉換
3、操作符的屬性
+? ?-? ?*? ?/? ?%
1、除了 % 操作符之外,其他的幾個操作符可以作用于整數和浮點數。
2、對于 / 操作符如果兩個操作數都為整數,執行整數除法。而只要有浮點數執行的就是浮點數除法。
3、% 操作符的兩個操作數必須為整數。返回的是整除之后的余數。
2、移位操作符<< 左移操作符
>>右移操作符
1、移位操作符的操作數只能是整數。
2、移位操作符,移的是二進制。
整形的二進制表示:原碼、反碼和補碼。
正數的原碼、反碼、補碼相同。
負數的反碼:原碼的符號位不變,其他位按位取反。
負數的補碼:負數的反碼+1。
整數在內存中存儲的是二進制的補碼。移位操作符,移動的是存儲在內存中的補碼。
左移操作符:左邊丟棄,右邊補0。
右移操作符:分為邏輯右移、算術右移。
邏輯右移:右邊丟棄,左邊補0。
算術右移:右邊丟棄,左邊補原符號位。
C語言并沒有給出明確的規定要采用哪種規則,這取決于編譯器的實現。大多數的編譯器是算術右移。
注意:1、%d 打印出來的是原碼形式。? 2、移位操作符,禁止移動負數位。
3、位操作符&? ? 按位與
|? ? ?按位或
^? ? 按位異或
注:他們的操作數必須是整數
異或的運算:相同為0,相異為1。
位操作符,位指的是二進制位。
1、不能創建臨時變量(第三個變量),實現兩個數的交換法一:用和計算。但是當數變大時,int裝不下。
#includeint main()
{
int a = 3;
int b = 5;
a = a + b;
b = a - b;
a = a - b;
printf("a=%d b=%d\n", a, b);
return 0;
} 法二:用異或計算。
原理:a^a=0;0^a=a;異或支持交換律。
#includeint main()
{
int a = 3;
int b = 5;
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("a=%d b=%d\n", a, b);
return 0;
} 4、賦值操作符連續賦值:

復合賦值符:
5、單目操作符+=? ?-=? ?*=? ?/=? ?%=? ? >>=? ?<<=? ? &=? ?|=? ? ^=
!? ? ? ? ? ? ? 邏輯反操作
-? ? ? ? ? ? ? 負值
+? ? ? ? ? ? ?正值
&? ? ? ? ? ? ?取地址
sizeof ? ? ?操作數的類型長度(以字節為單位)
~? ? ? ? ? ? ?對一個數的二進制按位取反
--? ? ? ? ? ? ?前置、后置--
++? ? ? ? ? ?前置、后置++
*? ? ? ? ? ? ? 間接訪問操作符(解引用操作符)
(類型) ? ? ?強制類型轉換
注意:sizeof 求變量(類型)所占空間的大小。sizeof 內部的表達式不會計算。得出的結果是通過表達式結果類型推演來的。
6、關系操作符7、邏輯操作符> ? >=? ? ?<=? ? ?!=? ? ==
8、條件操作符&& ? ? 邏輯與
|| ? ? ? ?邏輯或
9、逗號表達式exp1? ?? exp2? :? exp3
exp1,? exp2,? exp3,? …expN
逗號表達式,就是用逗號隔開的多個表達式。逗號表達式,從左向右依次執行。整個表達式的結果是最后一個表達式的結果。
10、下標引用、函數調用和結構成員 1、[ ] 下標引用操作符操作數:一個數組名 + 一個索引值
例如:

接受一個或者多個操作數:第一個操作數是函數名,剩余的操作數就是傳遞給函數的參數。

11、表達式求值.? ? ? ? ?結構體.成員名
-> ?結構體指針->成員名
表達式求值的順序一部分是由操作符的優先級和結合性決定。同樣,有些表達式的操作數在求值的過程中可能需要轉換為其他類型。
1、隱式類型轉換1、定義
C的整型算術運算總是至少以缺省整型類型的精度來進行的。為了獲得這個精度,表達式中的字符和短整型操作數在使用之前被轉換為普通整型,這種轉換稱為整型提升。
2、意義
整型提升的意義:表達式的整型運算要在CPU的相應運算器件內執行,CPU內整型運算器(ALU)的操作數的字節長度一般就是int的字節長度,同時也是CPU的通用寄存器的長度。因此,即使兩個char類型的相加,在CPU執行時實際上也要先轉換為CPU內整型操作數的標準長度。通用CPU(general-purpose CPU)是難以直接實現兩個8比特字節直接相加運算(雖然機器指令中可能有這種字節相加指令)。所以,表達式中各種長度可能小于int長度的整型值,都必須先轉換為int或unsigned int,然后才能送入CPU去執行運算。
例如:

3、如何進行整型提升
整形提升是按照變量的數據類型的符號位來提升的。


![]()
如果某個操作符的各個操作數屬于不同的類型,那么除非其中一個操作數的轉換為另一個操作數的類型,否則操作就無法進行。下面的層次體系稱為尋常算術轉換。
long double
double
float
unsigned long int
long int
unsigned int
int
如果某個操作數的類型在上面這個列表中排名較低,那么首先要轉換為另外一個操作數的類型后執行運算。
3、操作符的屬性復雜表達式的求值有三個影響的因素:
1. 操作符的優先級
2. 操作符的結合性
3. 是否控制求值順序
兩個相鄰的操作符先執行哪個?取決于他們的優先級。如果兩者的優先級相同,取決于他們的結合性。
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
文章題目:操作符(8)-創新互聯
文章地址:http://www.yijiale78.com/article42/cspihc.html
成都網站建設公司_創新互聯,為您提供靜態網站、網站改版、定制網站、網站收錄、手機網站建設、網站策劃
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯