D語言 運算子

2022-02-23 11:07:56 字數 2009 閱讀 8361

表示式:表示式是由非賦值運算子或特殊運算子和值組成的,每個表示式都可以計算出乙個值

基本的運算子有+,-,*,/,%

我相信你除了%應該能看得懂

%運算是求餘數的運算,具體請看:這篇文章的part 0部分

怎麼用呢?舉例介紹:

int a=1,b=2;

a+b;//3

a-b;//-2

a*b;//2

a/b;//1/2

b%a;//0

關係運算子描述幾個量之間的關係,他們是:==,!=,>,=,<=解釋一下:===!=,>=,<=邏輯運算子主要用於判斷當中,他們包括:&&,||,!接下來請記住概念:

只要a,b有乙個為假,a&&b即為假

只要a,b有乙個為真,a||b即為真

如果a為真,則!a為假;如果a為假,!a則為真

請注意!真假在bool型別中只能為1和0,但是對於其他變數,只要不為0即為真

這些運算子是最難懂的運算子,因為他們針對的是二進位制的。他們是:&,|,^,<>,~

若a,b的二進位制的同一位上為0,則a&b中,這一位為0

若a,b的二進位制的同一位上為1,則a|b中,這一位為1

^和&為互逆的運算

~a表示把a的每一位取反(0改為1,1改為0)

上面的三個運算子會針對乙個數的二進位制的每一位單獨操作,假設a的二進位制有4位,則若a參與&運算,&要判斷4個位上的數,最後把四次的結果組合為乙個新的數字,舉個例子:

假設a=1100,b=0011(二進位制),求a&b

第1次:a的第一位1和b的第一位0運算:1 & 0 = 0

第2次:a的第一位0和b的第一位1運算:0 & 1 = 0

第3次:a的第一位1和b的第一位0運算:1 & 0 = 0

第4次:a的第一位0和b的第一位1運算:0 & 1 = 0

組合結果,a&b=0000(二進位制)

接下來的運算,是針對乙個數的二進位制進行操作:

a>>b表示,把a的每一位向右移動b次,溢位的數字捨去,空缺的位用0補全

a舉個例子:假設a=1111(二進位制):

由於非賦值運算子並不會改變值,如果你想a加一,你要寫a = a+1

有了賦值運算子,就簡單的多了!

除了邏輯運算子,上面談到的非賦值運算子字尾=即為賦值運算子了:

=> >>=

<< => <<=

~ => ~=

特殊運算子並不是用來計算的,他們包括:sizeof(),&,*,?:sizeof(a)用來返回變數a所佔的位元組大小

&,*為指標運算子,此時他們左邊沒有數值&p來返回乙個變數p在計算機內儲存的位址,*p返回指標p指向的位址所儲存的值

a?x:y中,a是乙個表示式,如果表示式為真,則a?x:y的值為x;否則,a?x:y的值為y

C語言 運算子與 運算子

我們平時使用帶參巨集時,字串中的巨集引數是沒有被替換的。例如 輸出結果為 然而,我們期望輸出的結果是 5 20 2513 14 27 這該怎麼做呢?其實,c語言允許在字串中包含巨集引數。在類函式巨集 帶參巨集 中,號作為乙個預處理運算子,可以把記號轉換成字串。例如,如果a是乙個巨集形參,那麼 a就是...

C語言 運算子和 運算子

變數 代表 取變數的位址 變數 代表 指標型的變數 取址運算子 用來取得其運算元的位址。如果運算元 x 的型別為 t,則表示式 x 的型別是 t 型別指標 指向 t 的指標 取址運算子的運算元必須是在記憶體中可定址到的位址。換句話說,該運算子只能用於函式或物件 例如左值 而不可以用於位欄位,以及那些...

(運算子) 運算子

運算子既可作為一元運算子也可作為二元運算子。備註 unsafe context data guid 00bf87717d88a9fac1afadb796c675da 一元 運算子返回運算元的位址 要求 unsafe 上下文 bool data guid 9efd189df2cfb88799dca08...