運算子與表示式

2021-07-22 18:35:18 字數 1577 閱讀 1856

數**算:+ - * / % ++ –

注意事項:

+ - * / 兩端的變數必須是同種型別,並返回同種型別。

% 取餘運算,負數的餘數符號與被模數符號相同, - 1 % 5 = - 1,1 % - 5 = 1;num % n,n>0,結果範圍[0,n),是週期函式。

注意整除問題:1 / 2 = 0(整數的除法是整除)1.0 / 2 = 0.5 1d / 2 = 0.5

單獨的前、後自增或自減是沒區別的,有了賦值語句或返回值,則值不同!

eg1:自增自減

int a = 1; a = a++; system.out.println(「a的值:」+a);

第1步:後++,先確定表示式a++的值(當前a的值) a++ —->1

第2步:++,給a加1 a —->2

第3步:最後賦值運算,把a++整個表示式的值賦值給a a —->1

a被賦值兩次,第1次a = 2,第2次把1賦值給1

eg2:自增自減

x,y,z分別為5,6,7 計算z + = – y * z++ ;// x = 5,y = 5,z = 42

z = z + – y * z++ 42 = 7 + 5 * 7 從左到右入棧,入的是值

eg3:取出數字的每一位

d = num%10;//獲取num的最後一位數 num/=10; //消除num的最後一位

位運算:& | ~(取反) ^(異或)>> << >>>

注意事項:

乙個數異或同乙個數兩次,結果還是那個數。

|:上下對齊,有1個1則為1;&:上下對齊,有1個0則為0;(都為二進位制)

&相當於乘法,| 相當於加法;&:有0則為0,| :有1則為1,^:兩數相同為0,不同為1。

關係運算子:> < >= <= == !=

邏輯運算子:&& ||(短路) ! & |

eg:短路運算:&&:前為flase,則後面不計算;|| :前為true,則後面不計算

int x=1,y=1,z=1;

if(x–==1 && y++==1 || z++==1) // || 短路運算後面的不執行了!

system.out.println(「x=」+x+」,y=」+y+」,z=」+z);// 0 , 2, 1

賦值運算子:= += -= *= /= %=

eg:正負1交替

int flag= -1; system.out.println(flag *= -1); ……

條件(三目)運算子:表示式1 ? 表示式2 :表示式3

注意事項:

右結合性:a > b ? a : i > j ? i : j 相當於 a > b ? a : ( i > j ? i : j )

三目運算子中:第二個表示式和第三個表示式中如果都為基本資料型別,整個表示式的運算結果由容量高的決定。如:int x = 4; x > 4 ? 99.9 : 9;

99.9是double型別,而9是int型別,double容量高,所以最後結果為9.0。

運算子優先順序:括號 > 自增自減 > ~ ! > 算數運算子 > 位移運算 > 關係運算 > 邏輯運算 > 條件運算 > 賦值運算

運算子與表示式

學習c語言時,在我們已經學習了型別,常量與變數,接下來就是通過學習運算子與表示式對型別,常量與變數進行運算。簡單說一下概念,用來對資料進行運算的符號,就可以稱為運算子。c中運算子和資料構成的式子,就稱為表示式。表示式再在其後加乙個分號,即構成c 語言語句。先說一下運算子吧。c語言的運算子多,一般記住...

運算子與表示式

1.了解什麼是表示式 表示式是由運算子與資料組成的式子,每乙個表示式都有運算的結果。2.我的老師每次使用這個運算子的時候都會說到這個老梗,sizeof是運算子不是函式,別看sizeof後面還要加乙個括號,但不是所有的都是函式。這也從側面sizeof在面試題中經常出現。3.隱式轉換型別 由於有的編譯系...

運算子與表示式

運算子 的功能是完成某件事,它們由如 這樣的符號或者其他特定的關鍵字表示。運算子需要資料來進行運算,這樣的資料被稱為 運算元 在這個例子中,2和3是運算元。運算子我們將簡單瀏覽一下運算子和它們的用法 技巧你可以互動地使用直譯器來計算例子中給出的表示式。例如,為了測試表示式2 3,使用互動式的帶提示符...