亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言入門基礎(chǔ)知識大全

2021-06-29 23:05:50
字體:
供稿:網(wǎng)友
C語言中的邏輯值只有兩個(gè):真(true)和假(flase)。用非零代表真,用零代表假。因此,對于任意一個(gè)表達(dá)式,如果它的值為零,就代表一個(gè)假值,如果它的值為非零,就代表一個(gè)真值。只要值不是零,不管是正數(shù),負(fù)數(shù),整數(shù),實(shí)數(shù),都代表一個(gè)真值。例如-5的邏輯值為真。

1 C語言程序的結(jié)構(gòu)認(rèn)識

用一個(gè)簡單的c程序例子,介紹c語言的基本構(gòu)成、格式、以及良好的書寫風(fēng)格,使小伙伴對c語言有個(gè)初步認(rèn)識。

例1:計(jì)算兩個(gè)整數(shù)之和的c程序:

#include main() { int a,b,sum; /*定義變量a,b,sum為整型變量*/ a=20; /*把整數(shù)20賦值給整型變量a*/ b=15; /*把整數(shù)15賦值給整型變量b*/ sum=a+b; /*把兩個(gè)數(shù)之和賦值給整型變量sum*/ printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); /*把計(jì)算結(jié)果輸出到顯示屏上*/ }

重點(diǎn)說明:

1、任何一個(gè)c語言程序都必須包括以下格式:

main() { }

這是c語言的基本結(jié)構(gòu),任何一個(gè)程序都必須包含這個(gè)結(jié)構(gòu)。括號內(nèi)可以不寫任何內(nèi)容,那么該程序?qū)⒉粓?zhí)行任何結(jié)果。

2、main()----在c語言中稱之為“主函數(shù)”,一個(gè)c程序有且僅有一個(gè)main函數(shù),任何一個(gè)c程序總是從main函數(shù)開始執(zhí)行,main函數(shù)后面的一對圓括號不能省略。

3、被大括號{ }括起來的內(nèi)容稱為main函數(shù)的函數(shù)體,這部分內(nèi)容就是計(jì)算機(jī)要執(zhí)行的內(nèi)容。

4、在{ }里面每一句話后面都有一個(gè)分號(;),在c語言中,我們把以一個(gè)分號結(jié)尾的一句話叫做一個(gè)c語言的語句,分號是語句結(jié)束的標(biāo)志。

5、printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); ----通過執(zhí)行這條c語言系統(tǒng)提供給我們直接使用的屏幕輸出函數(shù),用戶即可看到運(yùn)行結(jié)果,本程序運(yùn)行后,將在顯示器上顯示如下結(jié)果:

a=20,b=15,sum=35

6、#include

注意:(1)以#號開頭 (2)不以分號結(jié)尾 這一行沒有分號,所以不是語句,在c語言中稱之為命令行,或者叫做“預(yù)編譯處理命令”。

7、程序中以 /*開頭并且以*/結(jié)尾的部分表示程序的注釋部分,注釋可以添加在程序的任何位置,為了提高程序的可讀性而添加,但計(jì)算機(jī)在執(zhí)行主函數(shù)內(nèi)容時(shí)完全忽略注釋部分,換而言之就是計(jì)算機(jī)當(dāng)做注釋部分不存在于主函數(shù)中。


2 C程序的生成過程


C程序是先由源文件經(jīng)編譯生成目標(biāo)文件,然后經(jīng)過連接生成可執(zhí)行文件。

源程序的擴(kuò)展名為 .c ,目標(biāo)程序的擴(kuò)展名為 .obj , 可執(zhí)行程序的擴(kuò)展名為 .exe 。


3 標(biāo)識符


在編寫程序時(shí),必須為函數(shù)、變量等命名,這個(gè)名字稱為標(biāo)識符。C語言中標(biāo)識符的命名規(guī)則如下:

標(biāo)識符只能由字母、數(shù)字、下劃線組成;

標(biāo)識符的第一個(gè)字母必須是字母和下劃線;

標(biāo)識符區(qū)分大小寫字母,如If和if是兩個(gè)完全不同的標(biāo)識符。

合法標(biāo)識符如下: A6, b_3 , _mn 非法的標(biāo)識符如下: ab#12 , 8m , tr3:4 , yes no

標(biāo)識符不能與程序中具有特殊意義的關(guān)鍵字相同,不能與用戶編制的函數(shù)名、C語言庫函數(shù)相同,在程序中各種標(biāo)識符盡量不要重復(fù),以便區(qū)分。選擇變量名和其他標(biāo)識符時(shí),應(yīng)注意做到 “見名知義”。

標(biāo)識符分為如下三類:

1、關(guān)鍵字

關(guān)鍵字是具有特定含義的,專門用來說明c語言特定成分的一類標(biāo)識符,不能用作用戶的標(biāo)識符。

auto break case char union do double else enum extern goto if int long short signed static sizof struct switch unsigned void for while typedef continue float return typedef default

2、預(yù)定義標(biāo)識符

預(yù)定義標(biāo)識符在c語言中也有特定的含義,但可以用作用戶標(biāo)識符,預(yù)定義標(biāo)識符分為兩類:

1)、庫函數(shù)名字,比如printf,scanf,sin,isdigit等

2)、編譯處理命令名,比如define,include

3、用戶標(biāo)識符

用戶根據(jù)需要自己定義的標(biāo)識符稱為用戶標(biāo)識符。無論如何自定義標(biāo)識符,都必須符合標(biāo)識符的三條命名規(guī)則。


4 常量

在程序運(yùn)行中,其值不能被改變的量稱為常量。常量有5種類型:整型常量、實(shí)型常量、字符常量、字符串常量和符號常量。

4.1 數(shù)值轉(zhuǎn)換

數(shù)字的四種表現(xiàn)形式:

①:二進(jìn)制:所有數(shù)字由0,1構(gòu)成,逢二進(jìn)一,二進(jìn)制數(shù)中不會出現(xiàn)2。

②:八進(jìn)制:以數(shù)字0(注意不是以字母O,o)開頭,所有數(shù)字由0~7構(gòu)成,逢八進(jìn)一,八進(jìn)制數(shù)中不會出現(xiàn)8。 例:0112,0123,077等

③:十進(jìn)制:所有數(shù)字由0~9構(gòu)成,逢十進(jìn)一,十進(jìn)制數(shù)中不會出現(xiàn)10。 例:0,12,-15等

④:十六進(jìn)制:以0x或者0X(數(shù)字0加字母x)開頭,所有數(shù)字由0~9,A~F(或者a~f)構(gòu)成,逢十六進(jìn)一(其中A、B、C、D、E、F分別代表10、11、12、13、14、15) 例:0x4A、0X14c7等


在計(jì)算機(jī)內(nèi)部,數(shù)字均以二進(jìn)制形式表示和存放,用戶輸入的普通十進(jìn)制數(shù)字都要被計(jì)算機(jī)轉(zhuǎn)換成二進(jìn)制才能在計(jì)算機(jī)內(nèi)部存儲,同樣計(jì)算機(jī)的運(yùn)算結(jié)果也為二進(jìn)制,一般要將其轉(zhuǎn)換成十進(jìn)制數(shù)再輸出給用戶閱讀,這種轉(zhuǎn)換通常由計(jì)算機(jī)自動(dòng)實(shí)現(xiàn)。

1)將十進(jìn)制轉(zhuǎn)換二進(jìn)制、八進(jìn)制和十六進(jìn)制

除法:將十進(jìn)制數(shù)除以2,記錄余數(shù),得到的商繼續(xù)除以2,直到商為0,然后將各次相處所得的余數(shù)從后往前逆序排列,所得余數(shù)數(shù)字序列就是該十進(jìn)制數(shù)對應(yīng)的二進(jìn)制數(shù)。八進(jìn)制和十六進(jìn)制轉(zhuǎn)換方法同上。

例:十進(jìn)制數(shù)13轉(zhuǎn)換成二進(jìn)制數(shù)的值為1101,轉(zhuǎn)換八進(jìn)制為015,轉(zhuǎn)換成十六進(jìn)制為D.

2)將二進(jìn)制、八進(jìn)制和十六進(jìn)制轉(zhuǎn)換成十進(jìn)制

乘積求和:將二進(jìn)制的每一位從低位到高位(右邊為低位,左邊為高位)分別乘以20,21,22。。。。,然后將這些積求和。

3)二進(jìn)制與八進(jìn)制、十六進(jìn)制數(shù)之間的相互轉(zhuǎn)換

①:二進(jìn)制轉(zhuǎn)八進(jìn)制:從右往左每三位一組轉(zhuǎn)換成十進(jìn)制數(shù),將所得數(shù)據(jù)組合就是對應(yīng)的八進(jìn)制數(shù)(注意:高位不足三位補(bǔ)零)。 例:(010 110 111)2=(267)8

②:二進(jìn)制轉(zhuǎn)十六進(jìn)制:從右往左每四位一組轉(zhuǎn)換成十進(jìn)制數(shù),將所得數(shù)據(jù)組合就是對應(yīng)的十六進(jìn)制數(shù)(注意:高位不足四位補(bǔ)零)。 例:(0101 1011)2=(5B)16

③:八進(jìn)制轉(zhuǎn)化二進(jìn)制:每一位數(shù)字轉(zhuǎn)換為三位二進(jìn)制數(shù)字 例:(13)8=(001 011)2= (注意:去掉前面的兩個(gè)00,因?yàn)?在高位沒有意義) ④:十六進(jìn)制轉(zhuǎn)化二進(jìn)制:每一位數(shù)字轉(zhuǎn)換為四位二進(jìn)制數(shù)字 例:(E3)16=(1110 0011)2

4.2 整型常量

整型常量有3種形式:十進(jìn)制整型常量、八進(jìn)制整型常量和十六進(jìn)制整型常量。

(注意:c語言中沒有直接表示二進(jìn)制的整型常量,在c語言源程序中不會出現(xiàn)二進(jìn)制。)

書寫方式如下:十進(jìn)制整型常量:123 , 0 ,-24 , 85L(長整型常量) 等 八進(jìn)制整型常量:051 ,-026 ,0773 等 十六進(jìn)制整型常量:0x55 , 0x1101 , 0x , 0x5AC0 , -0xFF。 其中L為長整型。

4.3 實(shí)型常量

實(shí)型常量有兩種表示形式:小數(shù)形式和指數(shù)形式。

小數(shù)形式:5.4 0.074 -23.0 指數(shù)形式:5.4e0 4.3e-3 -3.3e4

1)小數(shù)部分為0的實(shí)型常量,可以寫為453.0 或453。

2)用小數(shù)表示時(shí),小數(shù)點(diǎn)的兩邊必須有數(shù),不能寫成“ .453“和“453.“,而應(yīng)該寫成“0.453“和“453.0“。

3)用指數(shù)寫法時(shí),e前必須有數(shù)字,e后面的指數(shù)必須為整數(shù)(注意:整數(shù)階碼可以是正數(shù),負(fù)數(shù),也可以是八進(jìn)制數(shù)、十六進(jìn)制數(shù),但必須為整數(shù))。

4.4 字符常量


字符常量的標(biāo)志是一對單引號‘ ’,c語言中的字符常量有兩類:

1)由一對單引號括起來的一個(gè)字符,如‘a ’, ‘r’ ,‘#’。注意: ′a′ 和 ′A′ 是兩個(gè)不同的字符常量。

2)由一對單引號括起來,以反斜杠\開頭,后跟若干數(shù)字或者字母,比如‘\n’,其中“\“是轉(zhuǎn)義的意思,后面跟不同的字符表示不同的意思,這類字符常量叫轉(zhuǎn)義字符。具體如圖所示 。

轉(zhuǎn)義字符 轉(zhuǎn)義字符的意義 ASCII碼

\n 回車換行 10 \t 橫向跳到下一制表位置 9 \b 退格 8 \r 回車 13 \f 走紙換頁 12 \\ 反斜線符"\" 92 \' 單引號符 39 \” 雙引號符 34 \a 鳴鈴 7 \ddd 1~3位八進(jìn)制數(shù)所代表的字符 \xhh 1~2位十六進(jìn)制數(shù)所代表的字符

4.5 字符串常量

C語言中,以雙引號括起來的,由若干個(gè)字符組成的序列即為字符串常量。

例:“ni hao” “happy”等等。

4.6 符號常量

符號常量是由宏定義“#define“定義的常量,在C程序中可用標(biāo)識符代表一個(gè)常量。

例:計(jì)算圓的面積的c程序。

#include #define PI 3. main() { float r,s; r=12.5; S=PI *r*r; printf(“s= %f ”,s); }

說明:

#define 是宏定義,此程序中所有出現(xiàn)PI的地方都代表3.,同時(shí)PI稱為符號常量。習(xí)慣上我們用大寫字母來表示符號常量,小寫字母表示變量,這樣比較容易區(qū)別。


5 變量

變量就是其值可以改變的量。變量要有變量名,在內(nèi)存中占據(jù)一定的存儲單元,存儲單元里存放的是該變量的值。不同類型的變量其存儲單元的大小不同,變量在使用前必須定義。

5.1 整型變量


整型變量分為4種:基本型(int)、短整型(short int 或short)、長整型(long int 或 long)和無符號型(unsigned int ,unsigned short,unsigned long)。

不同的編譯系統(tǒng)對上述四種整型數(shù)據(jù)所占用的位數(shù)和數(shù)值范圍有不同的規(guī)定。

類型說明符

單詞signed來說明“有符號”(即有正負(fù)數(shù)之分),不寫signed也隱含說明為有符號,unsigned用來說明“無符號”(只表示正數(shù))。

5.2 實(shí)型變量


C語言中,實(shí)型變量分為單精度類型( float )和雙精度類型( double )兩種。如:

float a , b ; double m ;

在vc中,float 型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié)(32位),double型數(shù)據(jù)占8個(gè)字節(jié)。單精度實(shí)數(shù)提供7位有效數(shù)字,雙精度實(shí)數(shù)提供15~16位有效數(shù)字。實(shí)型常量不分float型和double型,一個(gè)實(shí)型常量可以賦給一個(gè)float 型或double型變量,但變量根據(jù)其類型截取實(shí)型常量中相應(yīng)的有效數(shù)字。

注意:實(shí)型變量只能存放實(shí)型值,不能用整型變量存放實(shí)型值,也不能用實(shí)型變量存放整型值。


5.3 字符變量


字符變量用來存放字符常量,定義形式:

char 變量名;

其中關(guān)鍵字char定義字符型數(shù)據(jù)類型,占用一個(gè)字節(jié)的存儲單元。

例:char cr1,cr2; cr1= ‘A’ , cr2=‘B’ ;

將一個(gè)字符賦給一個(gè)字符變量時(shí),并不是將該字符本身存儲到內(nèi)存中,而是將該字符對應(yīng)的ASCII碼存儲到內(nèi)存單元中。

由于在內(nèi)存中字符以ASCII碼存放,它的存儲形式和整數(shù)的存儲形式類似,所以C語言中字符型數(shù)據(jù)與整型數(shù)據(jù)之間可以通用,一個(gè)字符能用字符的形式輸出,也能用整數(shù)的形式輸出,字符數(shù)據(jù)也能進(jìn)行算術(shù)運(yùn)算,此時(shí)相當(dāng)于對它們的ASCII碼進(jìn)行運(yùn)算。


6 類型的自動(dòng)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換


當(dāng)同一表達(dá)式中各數(shù)據(jù)的類型不同時(shí),編譯程序會自動(dòng)把它們轉(zhuǎn)變成同一類型后再進(jìn)行計(jì)算。轉(zhuǎn)換優(yōu)先級為:

char < int < float < double

即左邊級別“低“的類型向右邊轉(zhuǎn)換。具體地說,若在表達(dá)式中優(yōu)先級最高的數(shù)據(jù)是double型,則此表達(dá)式中的其他數(shù)據(jù)均被轉(zhuǎn)換成double型,且計(jì)算結(jié)果也是double型;若在表達(dá)式中優(yōu)先級最高的數(shù)據(jù)是float型,則此表達(dá)式中的其他數(shù)據(jù)均被轉(zhuǎn)換成float型,且計(jì)算結(jié)果也是float型。

在做賦值運(yùn)算時(shí),若賦值號左右兩邊的類型不同,則賦值號右邊的類型向左邊的類型轉(zhuǎn)換;當(dāng)右邊的類型高于左邊的類型時(shí),則在轉(zhuǎn)換時(shí)對右邊的數(shù)據(jù)進(jìn)行截取。

除自動(dòng)轉(zhuǎn)換外,還有強(qiáng)制轉(zhuǎn)換,表示形式是:

( 類型 )(表達(dá)式); 例:(int)(a+b)

討論:當(dāng)a值賦值為3.4,b值賦值為2.7,(int)(a+b)和(int)a+b的值分別為多少?

7 C運(yùn)算符認(rèn)識


C語言的運(yùn)算符范圍很廣,可分為以下幾類:

1、算術(shù)運(yùn)算符:用于各類數(shù)值運(yùn)算。包括加(+)、減(-)、乘(*)、除(/)、求余(%)、自增(++)、自減(--)共七種。

2、賦值運(yùn)算符:用于賦值運(yùn)算,分為簡單賦值(=)、復(fù)合算術(shù)賦值(+=,-=,*=,/=,%=)和復(fù)合位運(yùn)算賦值(&=,|=,^=,>>=,<<=)三類共十一種。 <="" span="">

3、逗號運(yùn)算符:用于把若干表達(dá)式組合成一個(gè)表達(dá)式(,)。

4、關(guān)系運(yùn)算符:用于比較運(yùn)算。包括大于(>)、小于(<)、等于(==)、 大于等于(="">=)、小于等于(<=)和不等于(!=)六種。 <="" span="">

5、邏輯運(yùn)算符:用于邏輯運(yùn)算。包括與(&&)、或(||)、非(!)三種。

6、條件運(yùn)算符:這是一個(gè)三目運(yùn)算符,用于條件求值(?:)。

7、位操作運(yùn)算符:參與運(yùn)算的量,按二進(jìn)制位進(jìn)行運(yùn)算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

8、指針運(yùn)算符:用于取內(nèi)容(*)和取地址(&)二種運(yùn)算。

9、求字節(jié)數(shù)運(yùn)算符:用于計(jì)算數(shù)據(jù)類型所占的字節(jié)數(shù)(sizeof)。

10、特殊運(yùn)算符:有括號(),下標(biāo)[],成員(→,.)等幾種。

另外,按參與運(yùn)算的對象個(gè)數(shù),C語言運(yùn)算符可分為:單目運(yùn)算符 (如 !)、雙目運(yùn)算符 (如+,- )和三目運(yùn)算符 (如 ? : )。


8 算術(shù)運(yùn)算符和算術(shù)表達(dá)式


8.1 基本的算術(shù)運(yùn)算符


(1)+(加法運(yùn)算符或正值運(yùn)算符,如2+5)。

(2)-(減法運(yùn)算符或負(fù)值運(yùn)算符,如4-2)。

(3)*(乘法運(yùn)算符,如3*8)。

(4)/(除法運(yùn)算符,如11/5)。

/的運(yùn)算分為兩種情況:

a、“除”的左右兩邊都為整數(shù)時(shí),所得結(jié)果必然是整數(shù)(注意:僅取整數(shù)部分,不是四舍五入)

比如:5/2的值為2,不是2.5,1/2的值為0。

b、“除”的左右兩邊至少有一個(gè)是實(shí)型數(shù)據(jù)(即小數(shù))時(shí),所得結(jié)果為實(shí)型數(shù)據(jù)。

比如:5/2.0的值為2.5,7.0/2.0的值為3.5.

(5)%(模運(yùn)算符或稱求余運(yùn)算符,%兩側(cè)均應(yīng)為整型數(shù)據(jù),如9%7的值為2)。

需要說明的是:當(dāng)運(yùn)算對象為負(fù)數(shù)時(shí),所得結(jié)果隨編譯器不同而不同,在vc中,結(jié)果的符號與被除數(shù)相同,比如:13%-2值為1,而-15%2值為-1。


8.2 算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級與結(jié)合性


算術(shù)表達(dá)式是用算術(shù)運(yùn)算符和括號將運(yùn)算量(也稱操作數(shù))連接起來的、符合C語言語法規(guī)則的表達(dá)式。運(yùn)算對象包括函數(shù)、常量和變量等。

在計(jì)算機(jī)語言中,算術(shù)表達(dá)式的求值規(guī)律與數(shù)學(xué)中的四則運(yùn)算的規(guī)律類似,其運(yùn)算規(guī)則和要求如下。

(1)在算術(shù)表達(dá)式中,可使用多層圓括號,但括號必須配對。運(yùn)算時(shí)從內(nèi)層圓括號開始,由內(nèi)向外依次計(jì)算各表達(dá)式的值。

(2)在算術(shù)表達(dá)式中,對于不同優(yōu)先級的運(yùn)算符,可按運(yùn)算符的優(yōu)先級由高到低進(jìn)行運(yùn)算,若表達(dá)式中運(yùn)算符的優(yōu)先級相同,則按運(yùn)算符的結(jié)合方向進(jìn)行運(yùn)算。

(3)如果一個(gè)運(yùn)算符兩側(cè)的操作數(shù)類型不同,則先利用自動(dòng)轉(zhuǎn)換或強(qiáng)制類型轉(zhuǎn)換,使兩者具有相同類型,然后進(jìn)行運(yùn)算。


8.3 自增自減運(yùn)算符


作用:使變量的值增1或減1。

如:++i,--i (在使用i之前,先使i的值加1、減1)。 i++,i-- (在使用i之后,使i的值加1、減1)。

(1)只有變量才能用自增運(yùn)算符 (++)和自減運(yùn)算符(--),而常量或表達(dá)式不能用,如10++或(x+y)++都是不合法的。

(2)++和--的結(jié)合方向是“自右向左“,如 -i++ ,i的左邊是負(fù)號運(yùn)算符,右邊是自增運(yùn)算符,負(fù)號運(yùn)算和自增運(yùn)算都是 “自右向左“結(jié)合的,相當(dāng)于 -(i++)。

在循環(huán)語句中常用到自增(減)運(yùn)算符,在指針中也常用到該運(yùn)算符,考生要弄清楚“i++”和“++i”及“i--”和“--i”的區(qū)別,特別弄清楚表達(dá)式的值和變量的值。


9 賦值運(yùn)算符與賦值表達(dá)式


9.1 賦值運(yùn)算符與賦值表達(dá)式


賦值符號 “=“就是賦值運(yùn)算符,作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變量或?qū)⒁粋€(gè)變量的值賦給另一個(gè)變量,由賦值運(yùn)算符組成的表達(dá)式稱為賦值表達(dá)式。一般形式為:

變量名 = 表達(dá)式

在程序中可以多次給一個(gè)變量賦值,每賦一次值,與它相應(yīng)的存儲單元中的數(shù)據(jù)就被更新一次,內(nèi)存中當(dāng)前的數(shù)據(jù)就是最后一次所賦值的那個(gè)數(shù)據(jù)。

例:a=12; 此表達(dá)式讀作“將10的值賦值給變量a”。

a、如果賦值號兩邊的運(yùn)算對象類型不一致,系統(tǒng)會自動(dòng)進(jìn)行類型轉(zhuǎn)換,轉(zhuǎn)換的規(guī)則:將賦值號右邊表達(dá)式的值的類型轉(zhuǎn)換成賦值號左邊變量的類型,

例:int y=3.5; 在變量y中最終存儲的是整數(shù)3。

b、 可以將復(fù)制表達(dá)式的值再賦值給變量,形成連續(xù)賦值。

例如:x=y=25 是一個(gè)連續(xù)賦值表達(dá)式,x=y=25 等價(jià)于x=(y=25),所以表達(dá)式x=y=25 最終的值為25 。


9.2 復(fù)合的賦值運(yùn)算符


在賦值運(yùn)算符之前加上其他運(yùn)算符可以構(gòu)成復(fù)合賦值運(yùn)算符。其中與算術(shù)運(yùn)算有關(guān)的復(fù)合運(yùn)算符是:+=,-=,*=,/=,%= 。

兩個(gè)符號之間不可以有空格,復(fù)合賦值運(yùn)算符的優(yōu)先級與賦值運(yùn)算符的相同。表達(dá)式n+=1等價(jià)于n=n+1,作用是取變量n中的值增1再賦給變量n,其他復(fù)合的賦值運(yùn)算符的運(yùn)算規(guī)則依次類推。

如求表達(dá)a+=a-=a*a 的值,其中a的初值為12 。

步驟:

(1)先進(jìn)行“a-=a*a“運(yùn)算,相當(dāng)于a=a-a*a=12-144=-132 。 (2)再進(jìn)行“a+=-132“運(yùn)算,相當(dāng)于 a=a+(-132)==-264 。


9.3 逗號運(yùn)算符和逗號表達(dá)式


在c語言中,逗號除了作為分隔符,還可以用作一種運(yùn)算符----逗號運(yùn)算符,用逗號運(yùn)算符將幾個(gè)表達(dá)式連接起來,例如a=b+c,a=b*c等稱為逗號表達(dá)式。

一般形式為:

表達(dá)式1 ,表達(dá)式2 ,表達(dá)式3 , …,表達(dá)式n

例:x=2,y=3,z=4

逗號表達(dá)式具有從左至右的結(jié)合性,即先求解表達(dá)式1,然后依次求解表達(dá)式2,直到表達(dá)式n的值。表達(dá)式n的值就是整個(gè)逗號表達(dá)式的值。上述的逗號表達(dá)式的值就是表達(dá)式z=4的值4.需要注意的是,逗號運(yùn)算符是所有運(yùn)算符中級別最低的。

例:有如下程序段:

main() { int a=2,b=4,c=6,x,y; y=(x=a+b),(b+c); printf("y=%d,x=%d",y,x); }

程序顯示結(jié)果為:y=6,x=6

討論:將y=(x=a+b),(b+c);改為y=((x=a+b),b+c) 的程序結(jié)果?


10 關(guān)系運(yùn)算符和關(guān)系表達(dá)式

10.1 C語言中的邏輯值


C語言中的邏輯值只有兩個(gè):真(true)和假(flase)。用非零代表真,用零代表假。因此,對于任意一個(gè)表達(dá)式,如果它的值為零,就代表一個(gè)假值,如果它的值為非零,就代表一個(gè)真值。只要值不是零,不管是正數(shù),負(fù)數(shù),整數(shù),實(shí)數(shù),都代表一個(gè)真值。例如-5的邏輯值為真。


10.2 邏輯表達(dá)式


“&&”和“||”的運(yùn)算對象有兩個(gè),故它們都是雙目運(yùn)算符,而!的運(yùn)算對象只有一個(gè),因此它是單目運(yùn)算符。邏輯運(yùn)算舉例如下:

(1)a&&b: 當(dāng)&&兩邊都為“真”時(shí),表達(dá)式a&&b的值才是真。

值得注意的是:在數(shù)學(xué)中,關(guān)系式0

(2)a||b: 當(dāng)||兩邊有一個(gè)為“真”時(shí),表達(dá)式a||b的值就是真。

(3)!a: 表示取反,如果a為真,則!A為假,反之亦然。例如!-5的值就為0.

在C語言中,由&&或||組成的邏輯表達(dá)式,在某些特定情況下會產(chǎn)生“短路“現(xiàn)象。

(1)x && y && z ,只有當(dāng)x為真(非0)時(shí),才需要判別y的值;只有x和y都為真時(shí),才需要去判別z的值;只要x為假就不必判別y和z,整個(gè)表達(dá)式的值為0??谠E:“一假必假”。

例:(!5==1)&&(++i==0) (!5==1)表達(dá)式的值為0,所以計(jì)算機(jī)運(yùn)行中就跳過(++i==0)此表達(dá)式,(!5==1)&&(++i==0)表達(dá)式的值為0.

(2)x||y||z ,只要x的值為真(非零),就不必判別y和z的值 ,整個(gè)表達(dá)式的值為1,只有x的值為假,才需要判別y的值,只有x和y的值同時(shí)為假才需要判別z的值,口訣:“一真必真”。


11 位運(yùn)算

11.1 位運(yùn)算符


在計(jì)算機(jī)中,數(shù)據(jù)都是以二進(jìn)制數(shù)形式存放的,位運(yùn)算就是指對存儲單元中二進(jìn)制位的運(yùn)算。C語言提供6種位運(yùn)算符。


11.2 位運(yùn)算


位運(yùn)算符 & |~<< >> ∧ 按優(yōu)先級從高到低排列的順序是:

位運(yùn)算符中求反運(yùn)算“~“優(yōu)先級最高,而左移和右移相同,居于第二,接下來的順序是按位與 “&“、按位異或 “∧“和按位或 “|“。順序?yàn)閪 << >> & ∧ | 。

例1:左移運(yùn)算符“<<”是雙目運(yùn)算符。其功能把“<< ”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“<<”右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0。="" <="" span="">

例如: a<<4 指把a(bǔ)的各二進(jìn)位向左移動(dòng)4位。如a=00000011(十進(jìn)制3),左移4位后為00(十進(jìn)制48)。

例2:右移運(yùn)算符“>>”是雙目運(yùn)算符。其功能是把“>> ”左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位,“>>”右邊的數(shù)指定移動(dòng)的位數(shù)。

例如: 設(shè) a=15, a>>2 表示把右移為十進(jìn)制3)。

應(yīng)該說明的是,對于有符號數(shù),在右移時(shí),符號位將隨同移動(dòng)。當(dāng)為正數(shù)時(shí),最高位補(bǔ)0,而為負(fù)數(shù)時(shí),符號位為1,最高位是補(bǔ)0或是補(bǔ)1 取決于編譯系統(tǒng)的規(guī)定。

例3:設(shè)二進(jìn)制數(shù)a是00 ,若通過異或運(yùn)算a∧b 使a的高4位取反,低4位不變,則二進(jìn)制數(shù)b是。

解析:異或運(yùn)算常用來使特定位翻轉(zhuǎn),只要使需翻轉(zhuǎn)的位與1進(jìn)行異或操作就可以了,因?yàn)樵瓟?shù)中值為1的位與1進(jìn)行異或運(yùn)算得0 ,原數(shù)中值為0的位與1進(jìn)行異或運(yùn)算結(jié)果得1。而與0進(jìn)行異或的位將保持原值。異或運(yùn)算還可用來交換兩個(gè)值,不用臨時(shí)變量。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
黄色资源网久久资源365| 久久99视频精品| 欧美丰满少妇xxxbbb| 色wwwwww| 精品一成人岛国片在线观看| 日日嗨av一区二区三区四区| 捆绑紧缚一区二区三区在线观看| 欧美一三区三区四区免费在线看| 国产不卡的av| 欧美熟妇精品一区二区| 50一60岁老妇女毛片| 男人天堂亚洲二区| 香蕉久久夜色精品国产更新时间| 初体验·韩国| 亚洲天堂av免费在线观看| 欧美在线视频在线播放完整版免费观看| 国产精品私房写真福利视频| 黄色网络在线观看| 在线免费日韩| 久久久亚洲综合| 在线视频观看一区| 欧美综合在线观看视频| 先锋影音在av资源看片| 国产日韩三级在线| 在线视频中文字幕第一页| 苍井空张开腿实干12次| xxx欧美老熟| 另类图片亚洲另类| 姑娘第5集在线观看免费好剧| 天堂在线免费观看视频| 欧美亚洲一区在线| 草民福利视频| 不卡av在线网| 亚洲精品91在线| 国产视频911| 成人污网站在线观看| 激情综合网站| 6080国产精品| 中文字幕欧美日韩久久| 国产一级影视| 国产一区二区在线免费视频| 9l国产精品久久久久麻豆| 中文字幕一区二区三区不卡在线| 免费av手机在线观看| 无码人妻精品一区二区三区夜夜嗨| 日韩综合小视频| 久久免费少妇高潮久久精品99| 69久久久久| 制服.丝袜.亚洲.中文.综合懂| 国产三区四区在线观看| 国产超碰在线| 成人免费xxxxx在线观看| 午夜国产精品视频| 欧美精品偷拍| 国产精品丝袜久久久久久高清| 天堂精品视频| 欧美艹逼视频| 操人在线观看| 被灌满精子的波多野结衣| 亚洲一区二区三区四区五区xx| 天使萌一区二区三区免费观看| 色偷偷亚洲女人天堂观看欧| 麻豆福利在线观看| 亚洲婷婷在线视频| 久久天天东北熟女毛茸茸| 亚洲人成网站在线播放2019| www.国产精| 亚洲另类在线制服丝袜| 久久精品国产sm调教网站演员| 九九视频精品在线| 91成人在线视频| 亚洲成年电人电影网站| 欧美激情一二区| 国产99久一区二区三区a片| 日本毛片在线免费观看| 中文字幕一区二区三区免费看| 真实乱偷全部视频| 精品69视频一区二区三区| 久久久精品视频免费观看| 99国产精品白浆在线观看免费| 国产精品500部| 亚洲国产中文字幕在线| 黄色一区二区视频| 欧美大片第1页| 日韩精品欧美大片| 一本大道av一区二区在线播放| 欧美一区二区三区久久精品茉莉花| 国产视频观看一区| 国产成人在线免费观看| 一区二区影视| 亚洲高清视频一区| 欧美激情国内自拍| 久久久久国产精品区片区无码| 国产天堂第一区| 中文字幕人妻熟女人妻洋洋| 四虎永久网址| 国产精品久久久久久久久影视| 99精品视频在线观看播放| 成人性生交xxxxx网站| 国产又爽又黄免费视频| 四虎影视最新网站入口在线观看| 欧美一级视频| 超碰成人福利| 超碰在线影院| 91麻豆精品国产91| 99久久综合狠狠综合久久止| 国产精品无码专区av免费播放| 亚洲乱码免费伦视频| 99成人免费视频| 日韩欧美亚洲天堂| 亚洲一区二区三区四区在线免费观看| 2018亚洲男人天堂| 亚洲国产裸拍裸体视频在线观看乱了| 在线免费视频a| 波多野结衣视频一区| 精品国产免费久久久久久婷婷| 日韩av在线网站| 国产成人一区二区在线观看| 高清视频在线观看三级| 日韩在线观看视频一区二区三区| 亚洲区一区二| 娇小11一12╳yⅹ╳毛片| 亚洲性感美女99在线| 欧美午夜不卡| 91精品精品| 国产在线一级片| 日韩一卡二卡在线| 久久久久久亚洲综合| 国产91精品久久久久久久网曝门| 国产午夜精品视频| 国产调教视频一区| 人人爱人人干婷婷丁香亚洲| 国产精品视频内| 成人久久精品人妻一区二区三区| 国产 xxxx| 3d精品h动漫啪啪一区二区| 国产又爽又黄无码无遮挡在线观看| 美女羞羞视频在线观看| 国产婷婷在线视频| 午夜美女福利视频| 漫画在线观看av| 国产日韩精品一区二区三区在线| 亚洲日本护士毛茸茸| 天堂中文资源在线观看| 日本午夜一区二区| 欧美色精品天天在线观看视频| 第九区2中文字幕| 性做久久久久久久久| 日韩乱码人妻无码中文字幕久久| 国产一区二区三区久久悠悠色av| 欧美婷婷久久五月精品三区| 国产精品在线看| 韩日精品一区二区| 日本欧美精品久久久| 91精品在线一区| 欧美国产日韩免费| 粉嫩91精品久久久久久久99蜜桃| 在线视频 91| 三级ai视频| 久久久三级国产网站| aa视频在线免费观看| 卡通动漫精品一区二区三区| 国产伦精品一区二区免费| 青青草原国产在线| 韩国成人福利片在线播放| 久久草视频在线| 乱色588欧美| 亚洲理论电影| 懂色av蜜臀av粉嫩av分享吧最新章节| 国产精品小仙女| 天天干天天玩天天操| 97中文在线观看| 欧美成人艳星乳罩| 国产精品永久免费视频| 亚洲精品一区三区三区在线观看| 国产精品伊人日日| 欧美日韩在线精品一区二区三区| 91免费观看视频| 日韩av一二区| 成年人一级黄色片| 久久视频一区二区三区| 精品日韩中文字幕| 你懂的视频在线播放| 亚洲另类春色校园小说| 亚洲天堂最新地址| 欧美激情第一页xxx| 欧美激情国产日韩精品一区18| 黄色精品在线观看| 天天操天天干视频| 国产在线精品成人一区二区三区| 亚洲人午夜精品| 亚洲大胆人体大胆做受1| 国产美女永久无遮挡| 久久九九国产精品| 一区二区中文| 国产电影一区二区三区爱妃记| 欧美另类69xxxxx| 国内精品卡一卡二卡三| 色系列之999| 一级黄色大毛片| 欧美日韩一二三四五区| 中文字幕丰满人伦在线| 免费成人看片网址| 成人一级片在线观看| 欧美电影免费提供在线观看| 久久99精品久久久久久园产越南| 欧美三级欧美成人高清www| 国产成人无码精品久久二区三| 国产丝袜在线观看视频| 亚洲综合欧美日韩| 欧美激情一级精品国产| 成人免费视频国产免费| 成人在线免费看黄| 精品综合久久88少妇激情| 国产精品18毛片一区二区| 欧美a大片欧美片| 午夜精品一区二区三区电影天堂| 日本一区高清| 免费在线观看av网站| 网站永久看片免费| xfplay每日更新av资源在线| 国产人妻人伦精品1国产丝袜| 亚洲午夜未删减在线观看| 日韩欧美视频一区二区三区| 国产亚洲久一区二区| 又色又爽又黄视频| 少妇人妻无码专区视频| 精品日本一区二区三区在线观看| 污视频网站免费在线观看| 天堂在线资源视频| 国产高清在线观看视频| 欧美国产视频在线观看| 1769国内精品视频在线播放| 九色在线播放| 国产69精品久久久久9999小说| 亚洲精品成人图区| 精品视频在线播放一区二区三区| 亚洲成人av免费| 欧美亚洲丝袜传媒另类| xxx免费观看| 中文视频一区视频二区视频三区| 国内不卡一区二区三区| 奇米色一区二区三区四区| 国产福利一区二区三区在线播放| 国内精品久久久久久久久| 日韩中文娱乐网| 国产成人精品在线视频| 人妻av无码专区| 精品黑人一区二区三区在线观看| 国内精品久久久久国产盗摄免费观看完整版| 欧美日韩国产一二三| 欧美成人一区二区三区高清| 成人黄色综合网站| 亚洲色图图片| 久久久久亚洲av无码专区| 天堂亚洲精品| 韩日精品中文字幕| 天天综合网入口| 欧美成人精品三级在线观看| 亚洲视频一区在线观看| 亚洲第一区在线| 国产美女永久免费无遮挡| 在线一区二区三区| 成人av观看| 成人午夜网址| 日本在线观看一区二区| 国产高清精品一区二区| 欧美另类videos粗暴黑人| 午夜精品一区在线观看| 日韩一级在线视频| 久久久久久久免费| 爱情岛论坛亚洲入口| 国产高清视频一区| 午夜成人影视| 日本成本人片免费观看| 日韩专区在线视频| 免费在线观看h| 亚洲国产成人精品视频| 亚洲国产精品成人综合久久久| 你懂的国产视频| 欧美成人xxxxx| 四虎精品永久免费| gv天堂gv无码男同在线观看| 国产夫妻性爱视频| 毛片网站免费观看| 亚洲综合图色| 精品国产18久久久久久洗澡| 国产精品视频看| 国外成人性视频| 国产91精品在线播放| 欧美日在线观看| 欧美日韩不卡视频| 欧美偷拍一区二区三区| 91极品在线| 欧美一区二区视频在线观看| 亚洲小视频在线观看| 成年人精品视频| 亚洲欧美另类视频| 在线成人动漫av| 欧美下载看逼逼| 黄色一区二区三区| 欧美日韩有码| 亚洲第一区中文99精品| 2021最新国产精品一区| 中文字幕精品www乱入免费视频| 韩国三级在线观看久| 青青草国产免费| 国产一区二区三区在线视频观看| 精品国产亚洲av麻豆| 黄色成人在线免费| 嫩草香蕉在线91一二三区| 人人爱人人爽| 激情在线观看视频| 日本道中文字幕| 欧美电影《轻佻寡妇》| 国产亚洲在线| 五月婷婷综合网| 成视频免费观看在线看| 亚洲综合中文字幕在线观看| 久久久久久久电影| 亚洲精品天堂网| 色操视频在线| 久久久综合香蕉尹人综合网| 天天操天天射天天爽| 奇米亚洲欧美| 国产精品视频流白浆免费视频| 欧美a v在线播放| 中文字幕三区|