日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁(yè) > 編程 > C > 正文

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

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

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

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

例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)說(shuō)明:

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

main() { }

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

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

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

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

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

a=20,b=15,sum=35

6、#include

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

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


2 C程序的生成過(guò)程


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

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


3 標(biāo)識(shí)符


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

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

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

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

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

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

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

1、關(guān)鍵字

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

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)識(shí)符

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

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

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

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

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


4 常量

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

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

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

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

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

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

④:十六進(jìn)制:以0x或者0X(數(shù)字0加字母x)開(kāi)頭,所有數(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)部存儲(chǔ),同樣計(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ù)對(duì)應(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ù)組合就是對(duì)應(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ù)組合就是對(duì)應(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)?在高位沒(méi)有意義) ④:十六進(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語(yǔ)言中沒(méi)有直接表示二進(jìn)制的整型常量,在c語(yǔ)言源程序中不會(huì)出現(xiàn)二進(jìn)制。)

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

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í)型常量,可以寫(xiě)為453.0 或453。

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

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

4.4 字符常量


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

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

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

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

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

4.5 字符串常量

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

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

4.6 符號(hào)常量

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

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

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

說(shuō)明:

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


5 變量

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

5.1 整型變量


整型變量分為4種:基本型(int)、短整型(short int 或short)、長(zhǎng)整型(long int 或 long)和無(wú)符號(hào)型(unsigned int ,unsigned short,unsigned long)。

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

類型說(shuō)明符

單詞signed來(lái)說(shuō)明“有符號(hào)”(即有正負(fù)數(shù)之分),不寫(xiě)signed也隱含說(shuō)明為有符號(hào),unsigned用來(lái)說(shuō)明“無(wú)符號(hào)”(只表示正數(shù))。

5.2 實(shí)型變量


C語(yǔ)言中,實(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 字符變量


字符變量用來(lái)存放字符常量,定義形式:

char 變量名;

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

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

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

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


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


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

char < int < float < double

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

在做賦值運(yùn)算時(shí),若賦值號(hào)左右兩邊的類型不同,則賦值號(hào)右邊的類型向左邊的類型轉(zhuǎn)換;當(dāng)右邊的類型高于左邊的類型時(shí),則在轉(zhuǎn)換時(shí)對(duì)右邊的數(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)識(shí)


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

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

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

3、逗號(hào)運(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)算符:有括號(hào)(),下標(biāo)[],成員(→,.)等幾種。

另外,按參與運(yùn)算的對(duì)象個(gè)數(shù),C語(yǔ)言運(yùn)算符可分為:?jiǎ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)。

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


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


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

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

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

(2)在算術(shù)表達(dá)式中,對(duì)于不同優(yōu)先級(jí)的運(yùn)算符,可按運(yùn)算符的優(yōu)先級(jí)由高到低進(jìn)行運(yùn)算,若表達(dá)式中運(yùn)算符的優(yōu)先級(jí)相同,則按運(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ù)號(hào)運(yùn)算符,右邊是自增運(yùn)算符,負(fù)號(hào)運(yùn)算和自增運(yùn)算都是 “自右向左“結(jié)合的,相當(dāng)于 -(i++)。

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


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


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


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

變量名 = 表達(dá)式

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

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

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

例:int y=3.5; 在變量y中最終存儲(chǔ)的是整數(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è)符號(hào)之間不可以有空格,復(fù)合賦值運(yùn)算符的優(yōu)先級(jí)與賦值運(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 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式


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

一般形式為:

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

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

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

例:有如下程序段:

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語(yǔ)言中的邏輯值


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


10.2 邏輯表達(dá)式


“&&”和“||”的運(yùn)算對(duì)象有兩個(gè),故它們都是雙目運(yùn)算符,而!的運(yùn)算對(duì)象只有一個(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語(yǔ)言中,由&&或||組成的邏輯表達(dá)式,在某些特定情況下會(huì)產(chǎn)生“短路“現(xiàn)象。

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

例:(!5==1)&&(++i==0) (!5==1)表達(dá)式的值為0,所以計(jì)算機(jī)運(yùn)行中就跳過(guò)(++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)算就是指對(duì)存儲(chǔ)單元中二進(jìn)制位的運(yùn)算。C語(yǔ)言提供6種位運(yùn)算符。


11.2 位運(yùn)算


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

位運(yùn)算符中求反運(yùn)算“~“優(yōu)先級(jí)最高,而左移和右移相同,居于第二,接下來(lái)的順序是按位與 “&“、按位異或 “∧“和按位或 “|“。順序?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)該說(shuō)明的是,對(duì)于有符號(hào)數(shù),在右移時(shí),符號(hào)位將隨同移動(dòng)。當(dāng)為正數(shù)時(shí),最高位補(bǔ)0,而為負(fù)數(shù)時(shí),符號(hào)位為1,最高位是補(bǔ)0或是補(bǔ)1 取決于編譯系統(tǒng)的規(guī)定。

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

解析:異或運(yùn)算常用來(lái)使特定位翻轉(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)算還可用來(lái)交換兩個(gè)值,不用臨時(shí)變量。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
中文字幕2020第一页| 精品不卡一区二区| 91精品在线观看入口| 欧美久久综合性欧美| 欧美三级中文字幕| 欧美日韩日本视频| 国产欧美日韩91| 久久av免费| 日韩在线观看一区| 日韩国产在线观看一区| 精品在线网站观看| 亚洲三级免费看| 最新日韩中文字幕| 国产欧美日产一区| 午夜一区二区三区视频| 五月综合激情日本mⅴ| 中文字幕视频在线免费欧美日韩综合在线看| 最新中文字幕在线| 中文在线一区二区| 欧美日韩高清在线播放| 国产一级粉嫩xxxx| 久草亚洲一区| 久久夜色精品国产欧美乱极品| 日韩一级免费视频| 欧美日韩在线不卡视频| 国产中文在线视频| 日韩欧美中文| 日韩精品在线免费播放| 午夜伦欧美伦电影理论片| 一级日韩一级欧美| 日韩区欧美区| 免费国产成人看片在线| 国产在线黄色片| 日韩美女视频一区二区在线观看| 中文字幕亚洲在| 国产综合精品在线| www在线播放| 日韩欧美在线视频日韩欧美在线视频| 日韩免费看网站| 亚洲 国产 欧美 日韩| 日韩在线观看一区| 中文字幕第一页在线| 国产激情久久久| 欧美日韩亚洲一区| 久久99蜜桃精品久久久久小说| 国产福利一区二区精品秒拍| 天堂在线一区二区三区| 国产不卡一区二区在线观看| 欧美激情视频一区二区三区在线播放| 日韩美女中文字幕| 国产成人精品网址| 国产午夜在线观看| 日韩欧美字幕| 91精品久久久久久久久久入口| 日本精品福利视频| 99久热re在线精彩视频| 红桃视频亚洲| 日韩一级在线免费观看| 日韩国产欧美在线视频| 中文在线中文字幕| 国产在线精品日韩| 欧美日韩精品久久久| 一区二区三区四区五区视频在线观看| 日韩三级在线播放| 久久夜色精品国产欧美乱极品| 亚洲а∨精品天堂在线| 国产99对白在线播放| 99精品视频国产| 男人的天堂网av| av免费网站在线观看| 免费看黄资源大全高清| 日韩在线二区| 日韩免费视频一区二区| 亚洲欧洲综合另类| 国产不卡一区| 国产日韩成人精品| 91精品在线观看视频| 国产黄在线观看| 亚洲一区二区三区精品中文字幕| 精品亚洲综合| 美国av一区二区| 国产欧美综合在线| 免费在线视频一区二区| 精品在线91| 91精品在线看V| 国产卡1卡2卡三卡在线| 天堂在线中文| 一区二区三区四区五区视频在线观看| 日韩在线视频免费观看高清中文| 亚洲欧洲国产视频| 国产不卡一区| 国产专区中文字幕| 亚洲免费在线视频一区 二区| 久久视频在线免费观看| 国产中文在线播放| 国产亚洲污的网站| 国产黄色精品| 欧美亚洲免费高清在线观看| 亚洲综合中文字幕在线| 日韩网站中文字幕| 欧美日韩精品电影| 日韩欧美专区在线| 亚洲综合三区| 亚洲理论中文字幕| 欧美日韩高清在线一区| 欧美日韩亚州综合| 中文官网资源新版中文第二页在线观看| 日韩免费电影网站| 最新中文字幕在线| 日韩在线高清视频| 国产成人精品免费在线| 亚洲综合在线电影| 中文字幕在线播出| 中文字幕日韩在线视频| 精品三级久久| 蜜桃视频中文字幕| 国产乱一区二区| 在线免费视频一区二区| 视频一区二区国产| 亚洲九九精品| 欧美日韩在线观看成人| 国产不卡视频在线| 国产欧美日韩亚洲| 亚洲国产无线乱码在线观看| 国产欧美日韩中文字幕在线| 久久精品久久精品国产大片| 精品福利二区三区| 久久中文精品| 久久精品免费在线观看| 91精品国产综合久久精品| 一级特黄大欧美久久久| 亚洲区中文字幕| 国产一区在线观看视频| 国产成人精品免费久久久久| 国产婷婷色一区二区三区| 国产美女主播视频一区| 欧美国产综合在线V| 欧美成人精品在线| 不卡av免费在线| 在线黄色国产电影| 中文字幕亚洲欧美| 中文在线视频观看| 亚洲午夜av| 国产乱码在线| 樱花草www在线| 日韩欧美亚洲国产| 亚洲一卡二卡在线观看| 国产www在线观看| 伊人伊成久久人综合网小说| 影音先锋中文字幕在线观看| 日韩福利视频导航| 久久精品www| 久久av免费| 久久riav| 国产一区激情在线| а√天堂8资源中文在线| 中文字幕国产日韩| 日韩视频在线免费播放| 国产视频一二区| 成人福利一区| 久久久水蜜桃| 精品国产1区2区3区| 99久久久精品免费观看国产 | 中文字幕在线观看欧美| 一区二区三区在线播放欧美| 国产在线观看精品| 欧美熟妇乱码在线一区| 免费高清特黄a大片| 国产久卡久卡久卡久卡视频精品| av免费网站在线观看| 精品视频www| 精品国产99久久久久久| 国产成人精品999| 中文字幕伊人| 精品国产综合久久| 久久精品久久精品亚洲人| 国产91大片| 国产精品一区二区三区免费观看| 在线观看区一区二| 国产日韩亚洲欧美| 国产一二三视频| 国产高清精品在线| 国产一区日韩| 亚洲一区在线观看视频| 日韩国产91| 狠狠色综合色区| 婷婷中文字幕在线观看| 欧美精品一区二区三区在线播放| av午夜在线| 国产一区 二区 三区一级| 日韩亚洲不卡在线| 在线观看区一区二| 欧美日韩一二三四| 久久99久久99精品中文字幕| 日韩中文首页| 国产成人精品av久久| 91色在线看| 日韩av二区| 欧美日韩亚洲综合在线| 日韩中文在线中文网三级| 日韩欧美99| 欧美人妻一区二区三区| 日韩一级精品| 国产一区久久| 欧美日韩精品区| 久久婷婷中文字幕| 欧美亚洲国产日韩| 红桃视频国产一区| 欧美日韩在线国产| 国产视频aaa| 在线视频国产三级| 日韩精品高清不卡| 中文在线视频| 欧美日韩视频网站| 伊人亚洲视频| 91av久久久| 日韩a一区二区| av中文在线资源| 欧美日韩国产黄色| 91极品视频在线观看| 欧美日韩第一| 欧美日韩一二三四| 国产对白在线| 一级免费a一片| 欧美中文字幕视频| 亚洲综合欧美在线| 日韩精品国产欧美| www.91香蕉视频| 91精品国产高清| 成人一区二区不卡免费| 中文字幕在线播出| 最近免费中文字幕在线第一页| 国产一区在线不卡| 美日韩精品免费视频| 日韩午夜一区| 亚洲成年人影院在线| 顶级网黄在线播放| 刘玥91精选国产在线观看| 久久精品国产成人一区二区三区| 欧美另类专区| 日韩av在线中文字幕| 日韩免费高清一区二区| www日韩欧美| 国产手机视频一区二区| 97caopor国产在线视频| 91精品xxx在线观看| 国产永久在线观看| 亚洲女人天堂色在线7777| 91午夜在线| 国产一级片在线播放| 欧美日韩在线精品一区二区三区激情综| 日韩欧美国产免费| 中文字幕不卡三区| av午夜在线| 91精品综合久久| 午夜伦欧美伦电影理论片| 在线欧美一级视频| 久久精品国产2020观看福利| 日韩精品在线免费观看视频| 国产在线观看a| 亚洲影视资源网| 日韩欧美在线不卡| 日本精品免费观看高清观看| 国产高清在线视频| av首页在线| 日韩精品国产欧美| 中文字幕国产日韩| 91精品视频播放| 99久久久精品免费观看国产| 视频一区不卡| 亚洲中文字幕一区| 天堂中文在线视频| 国产欧美久久久精品影院| 免费视频一区三区| 日韩.欧美.亚洲| 中文字幕最新精品| 欧美日韩国产一区中文午夜| 中文亚洲欧美| 日韩视频中文字幕| 久久夜色精品国产噜噜亚洲av| 欧美日韩中文字幕视频| 中文字幕不卡三区| 国产一卡2卡3卡免费网站| 精品一二三四区| 亚洲欧洲一区二区天堂久久| 在线精品视频免费播放| 中文在线а√在线8| 国产永久在线观看| av一卡二卡| 免费在线观看国产黄| 欧美三级在线看| 国产91一区| 国产丝袜一区二区| 欧美日韩午夜在线| 国产欧美日韩在线观看| 红桃视频亚洲| 国产成人精品综合网站| 午夜国产福利在线观看| 欧美日韩午夜在线| 在线精品日韩| 婷婷中文字幕一区三区| 日本国产一区| 日韩精品视频在线| 欧美人妻一区二区三区| 最新中文字幕在线播放| 亚洲一级特黄| 日韩在线一区二区视频| 日韩精品视频在线免费观看| 午夜av一区二区| 亚洲国产无线乱码在线观看| 欧美日韩国产免费观看| 亚洲成年人影院在线| 欧美日韩高清在线| 中文字幕国产视频| 一本一道综合狠狠老| 久久人人88| 视频一区二区精品的福利| 婷婷久久综合九色国产成人| 在线资源av| 国产中文在线播放| 中文字幕五月天| 欧美wwww| 在线观看国产福利视频| 在线免费播放av| 中文网丁香综合网| 一区二区三区在线播| 日韩欧美国产午夜精品| 韩国v欧美v日本v亚洲| 91精品视频播放| 国产欧美日韩最新| eeuss一区| 欧美日韩在线综合| 精品福利在线观看| 亚洲综合欧美在线| 尤物在线精品| 一区二区不卡在线播放| 欧美日韩国产观看视频| 不卡视频一区二区三区| 日韩在线一区二区视频| 亚洲成av人综合在线观看| 99久久精品国产亚洲| 国产一区深夜福利| 免费高清视频日韩| 免费一级欧美在线观看视频| 亚洲三级网站| 久久精品99久久久久久久久| 国产91大片| www.eeuss影院| 丰满少妇一区二区| 国产一级久久久| 日韩一级二级三级精品视频| 亚洲视频一二三四| 国产亚洲欧美色| 亚洲欧美999| 亚洲欧洲在线观看av| 在线免费91| 国产资源在线观看入口av| 日韩欧美不卡| 日本亚洲欧美天堂免费| 日韩高清不卡一区| 成人精品视频一区| 丰满少妇一区二区| 欧美日韩亚洲综合| 中文字幕在线视频第一页| 999精品在线| 国产日韩精品电影| 中文字幕日韩在线观看| 欧美日韩精品免费| 日韩精品a在线观看91| 中文精品在线观看| 一区二区在线观看不卡| 亚洲一区二区三区精品中文字幕| 精品久久在线| 日韩久久精品网| 免费在线播放av| 日韩欧美一级在线| 一区二区三区在线免费| 国产99精品| 日韩亚洲一区在线| 久久久精品网| 亚洲欧美日本国产专区一区| 日韩在线小视频| 日韩中文在线字幕| 欧美婷婷精品激情| 在线看av的网址| 久久婷婷国产| 亚洲视频中文字幕| 亚洲中文字幕在线一区| 国产乱码在线观看| 一级一片免费视频| 国内不卡的二区三区中文字幕| 国产丝袜一区二区| 日韩中文字幕视频在线观看| 欧洲精品久久久| 国产小视频在线| 国产欧美日韩不卡免费| 日韩精品在线免费观看| 91精品国产欧美日韩| 天天综合天天综合| 亚洲高清视频在线|