C 基礎 運算子

2021-10-04 17:43:53 字數 3084 閱讀 1674

常用的運算符合:+,-,*,/,%,空連線運算子算術運算子

一元運算子:++,--

int i = 10;  int j = --i;  int k = j++; 結果:i=9; j=10; k=9;

二元運算子:+,-,*,/,%

10/3 = 3;  10%3=1;   10%4=2;  10%5=0;

邏輯運算子:返回型別永遠是布林型別

一元運算子:取非(!)

bool b = true;  bool r = !b; 結果: ràfalse;

二元運算子:條件與(&&),條件或(||)

條件與符號的兩邊都是true的時候,整個表示式是true,只要有乙個為false,則整個表示式為false

if ((5 > 3) && (7 > 4))

條件或(||)符號的兩邊都是false的時候,整個表示式是false,只要有乙個為true,則整個表示式為true

if ((5 > 3) || (4 > 7))

字串運算子(+)

string str = 「zhang」 + 「san」;//str = 「zhangsan」;

比較運算子:==,!= ,> ,>=,<,<=

判斷是否相等:==。如:判斷3和5是否相等: 3==5

判斷是否不等:!=。如:判斷3和5是否不等: 3!=5

判斷是否大於》:如:判斷3是否大於5: 3>5

判斷是否大於等於》=:如:判斷3是否大於等於5: 3>=5

判斷是否小於<:如:判斷3是否小於5: 3<5

判斷是否小於等於<=:如:判斷3是否小於等於5: 3<=5

注:

double型別的數值和

int型別的數值作比較是否相等時,不能用

==,例:

double型別的

5,可能是

5.0001或者

4.9999999,所以做比較不能用

==,應該寫成

double x=5; int y=5; if(math.abs(x-y)<1e-6)

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

給變數賦值:= 如:int age = 10;

先加再賦值:+= 如:age +=5; àage = age + 5;

-=,/=,*=,%=的演算法和上面的一樣。

三元運算子:?:規則:判斷?前面的表示式是否為真(true):若是,則返回:前面的那個資料,否則返回:後面的資料。簡單的說,就是個if..else語句。

int c = (10 > 9)?7:6;

checked和unchecked運算子

例: byte b=255;b++; console.writeline(b.tostring());當加上checked時,byte b=255;  checked console.writeline(b.tostring());注:用checked編輯器選項進行編譯,就可以檢查所有未標記**中的溢位,如果把一段**塊標記為checked,clr就會執行益處檢查,如果溢位就跑出overflowexception異常。如果要禁止檢查,則可以把**標記為unchecked。例: byte b=255;

unchecked console.writeline(b.tostring());這樣寫就不會丟擲異常,但會丟失資料,因為byte型別不能包含256,溢位位會丟失,所以b變數的得到的值是0。

注:  unchecked是預設行為。只有需要把幾行未檢查的**放在一段顯式標記為checked的打**中,才需要顯式地使用unchecked關鍵字。

is運算子

is運算子可以檢查物件是否與特定的型別相容。加絨表示物件或者該型別或者派生型別。例:要價差變數是否與object理性相容可使用線面的**」

int i=10; if ( i is object )

注:int和所有的資料型別一樣,也從object繼承而來;表示式 i is object將為true,並顯示相應的訊息。

as運算子

as運算子用於執行引用型別的顯示型別轉換的型別,與指定的型別相容,轉換就會成功進行;如果型別不相容,as運算子就會返回null值。

例:object  o1=」some string」;

object  o2=5;

string s1=o1 as string;//輸出結果:s1=」some string」;

string s2=02 as string;//輸出結果:s2=null;

as運算子允許在一步中進行安全的型別轉換,不需要先使用is運算子測試型別,再執行轉換。

sizeof運算子

使用sizeof運算子可以確定棧中值型別需要的長度(單位是位元組)。例:

console.writeline(sizeof(int));

其結果顯示數字4,因為int有4個位元組。如果對於複雜型別(和非基元型別)使用sizeof運算子,就需要把**放在unsafe塊中。例:

unsafe

typeof運算子

typeof運算子表示乙個特定型別的system.type物件。例:typeof(string)返回表示system.string型別的type物件,在使用反射技術動態查詢物件的相關資訊時,這個運算子很有用。

可空型別和運算子

可空型別與一元或二元運算子一起使用時,如果其中乙個運算元或者兩個運算元都是null,結果就是null。例:

int? a=null; int? b=a+4; //b的結果為null;

int? c =a*5; //c的結果為null

但是在比較可空型別時,只要乙個運算元是null,比較結果就是false。既不能因為乙個條件是false,就認為 對立面是true。例:

int? a=null;

if (a>=b)

else }

C 基礎 運算子

運算子用於執行程式 運算,會針對乙個以上運算元進行運算。是程式中的乙個重要組成部分,目前為止,任何一門語言都會有其運算子。我們在學習c 之前,已經接觸過vb了。vb中的運算子,大家現在是不是忘得差不多了呢?接下來這篇部落格將比較一下vb和c 中運算子的異同點。一 算數運算子 從圖中,我們不難看出vb...

C語言基礎學習運算子 關係運算子

比較大小 首先,我們得先了解一下布林型別。c語言的c99標準支援布林型別,關鍵字為 bool,用於表示邏輯值true與false。c語言用值1表示true,用值0表示false。因此布林型別實際上是一種整數型別。程式常常使用含有關係運算子的表示式進行分支和迴圈操作。我們將在分支和迴圈的章節中具體學習...

c 基礎(四) 運算子

簡單的加減乘除就不說了,說一些特殊的 取餘數 例 a b 注意,除了算數還可以連線字串 賦值運算子 例 就是將左面的數移到右邊計算,再賦值給左面 其他運算子 new 建立乙個類的例項 typeof 獲取資料型別說明 網上的一些例子 type t typeof string type 是抽象類,typ...