一、算術運算子
1、運算順序
優先順序不同時:先運算優先順序高的,再運算級低的;
優先順序相同時:從左到右運算。
2、取餘運算%
兩側必須都為整數,並且結果值的正負與被除數一致,即與 % 左邊的數一致。
3、整除運算/
,若兩邊同時為int型,則運算結果為int型:例如:3/2=1;若/兩邊又一邊為double型,則運算結果為double型。
4、如果想強制進行某些運算,可以使用小括號()
,小括號()的優先級別最高。
二、賦值運算子1、簡單賦值運算子 =
等號 =
表示把 = 右邊的數賦值給 = 左邊的變數,如下:
int a = 10; //
表示把10
賦值給a,這樣a的值就是10了。
還可以連續賦值
int a, b;
a = b = 10;
注意:等號=
左邊只能是變數,不能是常量
2、復合賦值運算子
+= 加賦值運算子。如a += 3+2
,等價於 a = a +(3+2)
-= 減賦值運算子。如a -= 3+2
,等價於 a = a -(3+2)
*= 乘賦值運算子。如a *= 3+2
,等價於 a = a *(3+2)
/= 除賦值運算子。如a /= 3+2
,等價於 a = a /(3+2)
%= 取餘賦值運算子。如a %= 3+2
,等價於 a = a %(3+2)
三、自增運算子和自減運算子
++ 自增運算子。如a++
,++a,都等價於a = a+1
-- 自減運算子。如a--
,--a,都等價於a = a-1
1、++a
和a++的區別
例如:int a = 10;
int b = ++a;
++a的意思是先對a
執行+1操作,再將a的值賦值給b。因此最後a、b的值都是11
int a = 10;
int b = a++;
a++的意思是先將a
的值拷貝出來乙份,然後對a執行+1操作,於是a變成了11,但是拷貝出來的值還是10,a++運算完畢後,再將拷貝出來的值10賦值給了b,所以最後變數b的值是10,變數a的值是11
--a和a--
的區別也是一樣的。
四、sizeof
1>
用來計算乙個變數或者乙個常量、一種資料型別所佔的記憶體位元組數。
2>
基本形式:
sizeof(
變數\常量 )
sizeof
變數\常量
sizeof(
資料型別 )
注意,不可以寫成sizeof float。
五、逗號運算子
逗號運算子主要用於連線,它的一般形式為:表示式1,
表示式2, ……, 表示式n。
逗號表示式的運算過程是:從左到右的順序,先計算表示式1
,接著計算表示式2,...,最後計算表示式n。
逗號運算子也是一種運算子,因此它也有運算結果。整個逗號表示式的值是最後乙個表示式的值。
六、關係運算子(比較運算)
關係運算子:<、
<=、
> 、
>=、
== 、
!=
1> 關係運算子的運算結果只有2
種:如果條件成立,結果就為1,也就是「真」;如果條件不成立,結果就為0,也就是「假」。
2> 在關係運算子中,==、!=優先順序相等,
< 、
<=、
>、
>=這4個優先順序相同,且前面兩個的優先順序低於後面4個的優先順序。
eg:2==3>1,先計算3>1返回1,2==1不成立返回0
3>
關係運算子的優先順序小於算數運算子優先順序。
eg:3+4>8-2 => 7>6 =>1
七、邏輯運算子
c語言提供了3
個邏輯運算子:&&(邏輯與)、||(邏輯或)、!(邏輯非)。注意:這些都是英文本元,不要寫成中文字元。跟關係運算子一樣,邏輯運算的結果只有2個:「真」為1,「假」為0。
1、&&邏輯與
使用格式:「條件a &&
條件b」
運算結果:只有當條件a
和條件b都成立時,結果才為1,也就是「真」;其餘情況的結果都為0,也就是「假」。因此,條件a或條件b只要有乙個不成立,結果都為0,也就是「假」
運算過程:
總是先判斷條件a是否成立
如果條件a成立,接著再判斷條件b是否成立:如果條件b成立,「條件a && 條件b」的結果就為1,即「真」,如果條件b不成立,結果就為0,即「假」;
如果條件a不成立,就不會再去判斷條件b是否成立:因為條件a已經不成立了,不管條件b如何,「條件a&& 條件b」的結果肯定是0,也就是「假;
2、||邏輯或
使用格式:「條件a ||
條件b」
運算結果:當條件a
或條件b只要有乙個成立時(也包括條件a和條件b都成立),結果就為1,也就是「真」;只有當條件a和條件b都不成立時,結果才為0,也就是「假」。
運算過程
總是先判斷條件a
是否成立
如果條件a成立,就不會再去判斷條件b是否成立:因為條件a已經成立了,不管條件b如何,「條件a|| 條件b」的結果肯定是1,也就是「真」
如果條件a不成立,接著再判斷條件b是否成立:如果條件b成立,「條件a || 條件b」的結果就為1,即「真」,如果條件b不成立,結果就為0,即「假」
3、!邏輯非
使用格式:「!
條件a」
運算結果:其實就是對條件a
進行取反:若條件a成立,結果就為0,即「假」;若條件a不成立,結果就為1,即「真」。也就是說:
真的變假,假的變真
。注意:
可以多次連續使用邏輯非運算子:!(4>2)
結果為0,是「假」,!!(4>2)結果為1,是「真」,!!!(4>2)結果為0,是「假」
c語言規定:任何非0
值都為「真」,只有0才為「假」。因此,對非0值進行邏輯非!運算的結果都是0,對0值進行邏輯非!運算的結果為1。!5、!6.7、!-9的結果都為0,!0的結果為1。
八、三目運算子
使用格式:表示式a ?
表示式b : 表示式c
運算結果:如果表示式a
成立,也就是為「真」,條件運算子的結果就是表示式b的值,否則,就為表示式c的值。
eg:計算兩個整數之間的最大值: int c = a > b ? a : b;
C語言基礎 基本運算
基本運算 c語言一共有34種運算子,包括了常見的加減乘除運算 一.算術運算 除開能做加法運算,還能表示正號 5 90 除開能做減法運算,還能表示符號 10 29 注意符號,不是x,而是 注意符號,不是 也不是 而是 整數除於整數,還是整數。1 2的值是0,這個並不是二分之一 什麼是取餘 兩個整數相除...
C語言基礎 基本運算
本文主要介紹c語言中的基本運算。c語言一共有34種運算子,包括了常見的加減乘除運算 除法運算 注意符號,不是 也不是 而是 整數除於整數,還是整數。1 2的值是0,這個並不是二分之一 取餘運算 兩側只能是整數 正負性取決於 左側的數值 注意點 自動型別轉換 int a 10.6 int b 10.5...
基礎演算法 位運算 基本運算
1.移動 左移n位 乘以2的n次方 右移n位 除以2的n次方 0 左移n位 在1後面加上n個0 注 0不等於1。等於11 11 x 0 正數左移右邊補0 正數右移左邊補0 負數左移右邊補1 負數右移左邊補1 移動的作用總結 乘2,除2。右n位清零 2.異或 x 0 x x x 0 x 1 x x x...