程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C/C++運算符及其優先級

C/C++運算符及其優先級

編輯:關於C++

1、自增自減

(1)前置運算:”先變後用“ 如++i;

後置運算:”先用後變“ 如i--;

例如:

 

int i = 5;
y1 = ++i;   
y2 = i++;

 

結果:y1 = 6;y2=6;i=7.

 

(2)前置和後置還有一個區別:前置可以用在等號的兩邊;而後置只能位於等號的右邊。

這是因為前置返回操作數本身,後置返回的是一個臨時變量。

 

int mian()
{
	int a = 3;
	a += (++a);       //a=7
	a += (a++);       //a=16
	(++a) += (a++);    //a=35
	(a++) += a;   //不正確
}

 

2、關系與邏輯運算符

(1)關系運算符(四種)和邏輯運算符(三種):返回的是布爾類型的結果

(2)關系的優先級 > 邏輯運算符

 

3、位運算

(1) 共六種:&、|、^、~、《(左移)、》(右移)

異或^:僅當兩位不相同時,結果才是1。

 

(2)進制轉換

[十進制轉二進制]

正十進制轉二進制除二取余倒排序。一直除到商等於1或0時為止.

\

所以,52對應的二進制數是:110100。

負整數轉換為二進制:取反加一

解釋:將該負整數對應的正整數先轉換成二進制,然後對其“取補”,再對取補後的結果加1即可。

例如要把-52換算成二進制:

1.先取得52的二進制:00110100

2.對所得到的二進制數取反:11001011

3.將取反後的數值加一即可:11001100

即:(-52)10=(11001100)2

 

[十進制轉十六進制]:除16取余倒排序。

十六進制數的表示:前綴法:0xA1

後綴法:A1H

 

[二進制和十六進制轉十進制]

算法一樣。都是 5*16^1+3*16^0 這種形式

 

 

(3)移位運算

規則:移位後,丟棄移出去的數,移後空白位補位規則如下:

int 左移低位補零,右移高位補符號位

unsighed int 低位高位都補零

 

4、類型轉換

(1)賦值轉換:將一種類型的值賦給另一種類型的變量。

int a = 3.14;

(2)表達式轉換

a、整型提升

b、運算時轉換

同一類型的有符號和無符號類型所占的內存空間相同。

(3)顯示轉換

(4)其他轉換

 

5、運算優先級

(1)括號下標結構體成員優先級最高

(2)單目高於雙目;算術雙目高於其他雙目

(3)算術>移位>關系>位運算>邏輯

(4)三目運算只有一個逗號,低於邏輯

(5)賦值比”,“高

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved