加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 算術(shù)運算符
    • 關(guān)系運算符
    • 邏輯運算符
    • 位運算
    • 賦值運算
    • 雜項運算
    • 運算符優(yōu)先級
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

C語言速查手冊:運算符(Operators)

04/30 08:13
1847
閱讀需 7 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

運算符是執(zhí)行特定操作的符號,它主要用于表達式的構(gòu)成。在C語言中運算符有很多種操作符,主要包括以下幾種運算符:

  • 算術(shù)運算符
  • 關(guān)系運算符
  • 邏輯運算符
  • 位運算符
  • 賦值運算符
  • 雜項運算符

算術(shù)運算符

算術(shù)運算符主要是一些算術(shù)運算,例如加減乘除等。詳細的運算規(guī)則如下表:

示例:

#include <stdio.h>

int main()
{
int a = 1, b1 = 2;
float b2 = 2.0;

printf("a + b1 = %dn", a + b1);
printf("a - b1 = %dn", a - b1);
printf("a * b1 = %dn", a * b1);
printf("a / b1 = %dn", a / b1);
printf("a / b2 = %fn", a / b2);
printf("a %% b1 = %dn", a % b1);
printf("a++ = %d ; a = %dn", a++, a);
printf("++a = %d ; a = %dn", ++a, a);
printf("a-- = %d ; a = %dn", a--, a);
printf("--a = %d ; a = %dn", --a, a);

return 0;
}

輸出結(jié)果:

上述運算中有幾點需要特別的注意。除法運算中如果兩個操作數(shù)都是整數(shù)那么得到的結(jié)果也必然是整數(shù)而不是小數(shù),如果兩個操作數(shù)其中有一個數(shù)是小數(shù)那么其結(jié)果也是小數(shù);對于整除運算結(jié)果也是整數(shù)。對于自增或自減運算,運算符在操作數(shù)之前和之后對于表達是本身來說有著一定的區(qū)別,但對于操作數(shù)自身是一樣的;如果操作數(shù)在運算符的左邊,則表達式的值就是操作數(shù)未運算之前的值,反之,就是運算之后的值。

關(guān)系運算符

關(guān)系運算符主要是操作數(shù)大小的判斷運算,例如兩個操作數(shù)是否相等。詳細的運算規(guī)則如下表:

示例:

#include <stdio.h>
int main()
{
int a1 = 1, b1 = 2;
int a2 = 1;

printf("a1 == a2 : %dn", a1 == a2);
printf("a1 == b1 : %dn", a1 == b1);
printf("a1 != b1 : %dn", a1 != b1);
printf("a1 > b1 : %dn", a1 > b1);
printf("a1 >= a2 : %dn", a1 >= a2);
printf("a1 < b1 : %dn", a1 < b1);
printf("a1 <= b1 : %dn", a1 <= b1);

return 0;
}

輸出結(jié)果:

上面的的輸出結(jié)果中,1為真,0為假。

邏輯運算符

邏輯運算也叫布爾運算,主要是測試真假值。詳細的運算規(guī)則如下表:

示例:

#include <stdio.h>
int main()
{
int a0 = 0, b0 = 0;
int a1 = 1, b1 = 1;

printf("a0 && b0 : %dn", a0 && b0);
printf("a0 && a1 : %dn", a0 && a1);
printf("a1 && b1 : %dn", a1 && b1);
printf("a0 || b1 : %dn", a0 || b1);
printf("!a0 : %dn", !a0);
printf("!a1 : %dn", !a1);
}

輸出結(jié)果:

位運算

位運算是直接對操作數(shù)存儲在內(nèi)存中的二進制進行按位操作。所以其速度也會比一般的運算速度會快。詳細的運算規(guī)則如下表:

示例:

#include <stdio.h>

int main()
{
int a = 5, b = 3;
printf("a & b = %dn", a & b);
printf("a | b = %dn", a | b);

return 0;
}

輸出結(jié)果:

賦值運算

最簡單的賦值運算符就是”=“,它的優(yōu)先級很低,后面會介紹。詳細的運算規(guī)則如下表:

示例:

#include <stdio.h>

int main()
{

int a = 1, b = 2, c = 3;
a += 1;
b -= 1;
c %= 2;

printf("a = %dn", a);
printf("b = %dn", b);
printf("c = %dn", c);

a <<= 2;
printf("a = %dn", a);
a >>= 1;
printf("a = %dn", a);
b >>= 1;
printf("b = %dn", b);

return 0;
}

輸出結(jié)果:

雜項運算

除了上面幾種運算符外,還有幾種比較常用的運算符。詳細的運算規(guī)則如下表:

sizeof()在數(shù)據(jù)類型章節(jié)已經(jīng)介紹過,& 和 *在指針的篇幅會做詳細的介紹,這里不過多說明。我們來看一個三目運算(?:)的例子,下面示例中如果“?”符號前a>b的條件成立,則取“:”符號前a的值,否則,取后面c的值。

示例:

#include <stdio.h>

int main()
{

int a = 1, b = 2, c = 3;
printf("a > b ? a : c= %dn", a > b ? a : c);

return 0;
}

輸出結(jié)果:

運算符優(yōu)先級

多個運算符在表達中出現(xiàn)時有著一定的運算順序,不同運算符有優(yōu)先級的高低,下表列出了不同運算符的優(yōu)先級順序,從上到下優(yōu)先級從高到低。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
TJA1051T/3/2Z 1 NXP Semiconductors Interface Circuit
$9.33 查看
AFBR-5803ATZ 1 Broadcom Limited Transceiver, 1270nm Min, 1380nm Max, 125Mbps(Tx), 125Mbps(Rx), ST Connector, Through Hole Mount, ROHS COMPLIANT, SIP-9

ECAD模型

下載ECAD模型
$34.2 查看
ABM11AIG-40.000MHZ-4Z-T3 1 Abracon Corporation CRYSTAL 40MHZ 10PF SMD
$1.44 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜