C語言編程基礎知識分享,運算符和表達式

C語言是面向過程的,而C++是面向?qū)ο蟮?/p>

本文主要內(nèi)容:

一、算術運算

C語言一共有34種運算符,包括常見的加減乘除運算。

. 加法:+ 還可以表示正號

. 減法:- 還可以表示負號

. 乘法:* 非數(shù)學意義上的X

. 除法:/ 注意1/2的值為0而非0.5

. 取余(模運算):兩個整數(shù)相除之后的余數(shù)(注意兩邊都必須是整數(shù),帶符號只和左值有關)

注意點:

. Int a=10.8;//數(shù)據(jù)精度丟失警告。結(jié)果為10——自動類型轉(zhuǎn)換

. Int a=(int)10.8;//無警告。把10.8強制轉(zhuǎn)換為整型——強制類型轉(zhuǎn)換

. Double c=10.6+6//結(jié)果為16.600000。在計算機中,拿兩個數(shù)值進行運算,則運算符兩邊的數(shù)值需要類型相同,如果不同則進行自動類型提升。即把6轉(zhuǎn)為6.000000后再參與運算。

. 參與運算的兩個數(shù)是什么類型,那么其結(jié)果就是什么類型。int a=10/3結(jié)果為3,double b=10/3結(jié)果為3.000000;double c=10.0/3結(jié)果為3.333333。要求精確值可以進行強制類型轉(zhuǎn)換。double d=(double)3/2把3轉(zhuǎn)換為double類型變?yōu)?.000000,之后2進行自動類型提升轉(zhuǎn)變?yōu)?.000000參與運算,結(jié)果為1.500000。也可以寫成3/(double)2。這種情況需要注意與對整體進行強制轉(zhuǎn)換的區(qū)別 double e=(double)(3/2)是先計算3/2的值為1再對1進行強制類型轉(zhuǎn)換,結(jié)果為1.000000。

二、賦值運算

(一)簡單賦值

Int a=10+5;a=b=10;//從右向左,左邊不能為常量

(二)復合賦值

a=a+5;=>a+=5;

a=a*5;=>a*=5;

a+=5*6+4;=>a=a+(5*6+4)

提示:預算順序取決于兩點:一是運算符的優(yōu)先級,二是結(jié)合的順序。

三、自增自減運算

Int a=10;

把a的值加1有四種方法:

. a=a+1;

. a+=1;

. a++;

. ++a;

簡單區(qū)分a++和++a。

Int b;

Int a=10;

b=++a; //a==11,b==11;a先把值加1為11,再賦值給b

b=a++; //a==11,b==10;a先把值10復制給b,a自己再加1為11

b=(a++)+(++a); //a1==10,a2==12,b==22

b=(++a)+(a++); //a1==11,a2==11,b==22

注意:int d=10++;//這種寫法是錯誤的,因為對常量進行自加和自減沒有任何意義。

四、Sizeof

作用:用來計算變量,常量或者是一種數(shù)據(jù)類型所占的內(nèi)存字節(jié)數(shù)。

基本形式:sizeof(變量名|常量|數(shù)據(jù)類型),完成之后返回一個值。

. Sizeof 變量|常量

. Sizeof (變量|常量)

. Sizeof (數(shù)據(jù)類型)

注意:數(shù)據(jù)類型一定要用括號括起來,不能寫成sizeof 數(shù)據(jù)類型這樣的形式。

五、關系運算符

(一)條件判斷

默認情況下。在程序中寫出的每一句正確的代碼都會被執(zhí)行,但很多時候我們需要在某個條件成立的情形下才執(zhí)行某一段代碼,如登錄操作,這種情況可以使用條件語句來完成。

(二)真假

在C語言中,條件成立稱為“真”,條件不成立稱為“假”。

C語言規(guī)定,任何數(shù)值都有真假性,任何非零值都為真,只有0才為假,無布爾類型。

(三)關系比較

關系運算的結(jié)果只有兩種情況,如果條件成立就為真,值為1,如果條件不成立就為假,值為0。有6種運算符,分別是:(1) (4) >= (5)== (6)!=

(四)使用注意

. ==和!=優(yōu)先級相等,其他四個關系運算符的優(yōu)先級相等,且前者的優(yōu)先級低于后者。如2==3>1 應該先計算3>1

. 關系運算符中,若優(yōu)先級相同,則“從左往右”結(jié)合。如4>33

. 關系運算符中的優(yōu)先級小于算術運算符。如3+4>8-2 相當于(3+4)> (8-2)

. 練習5!=4+2*7>3==10 先計算5!=18>3==10,5!=1==10,1==10,假

六、邏輯運算符

邏輯運算的結(jié)果只有兩個:真(0)和假(1)

. 與 && 條件1&&條件2 只有的那個條件1和條件2都成立時,才為真否則為假。

. 或 || 條件1 ||條件2 當條件1或條件2中有一個成立時就為真,都不成立時為假。

. 非 ! !條件 取反

注意:邏輯運算符在進行運算時,只要能夠確定整體的真假性,后面的條件就不再進行而是直接忽略。

Int a=b=10;

Int c=(a>5)&&(++b>=11);//此時a==10,b==11,c==1

Int c=(a=11);//此時a==10,b==10,c==0

提示:在進行邏輯運算時,如果搞不清楚各個符號的優(yōu)先級,可以使用()。

七、三目運算符

雙目:需要兩個值參與運算

單目:1個數(shù)值參與運算 如!5

三目:需要3個數(shù)值參與

格式:條件?數(shù)值1:數(shù)值2

先判斷?前的條件,若條件成立則返回數(shù)值1,若條件不成立則返回條件2。

要求比較a和b的值,把數(shù)值大的存入到c中 c=a>b?a:b

比較a,b,c三個數(shù)的值,把最大的值存入到d中

Int abmax=(a>b)?a:b;

d=abmax>c:abmax:c;

小編推薦一個學C語言/C++的學習裙【 二六三,六八八,二七六 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進步一起學習!裙內(nèi)有開發(fā)工具,很多干貨和技術資料分享!

這些是C/C++能做的

服務器開發(fā)工程師、人工智能、云計算工程師、信息安全(黑客反黑客)、大數(shù)據(jù) 、數(shù)據(jù)平臺、嵌入式工程師、流媒體服務器、數(shù)據(jù)控解、圖像處理、音頻視頻開發(fā)工程師、游戲服務器、分布式系統(tǒng)、游戲輔助等

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容