在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

加深小伙伴們對(duì)C語(yǔ)言的認(rèn)識(shí)

C語(yǔ)言編程學(xué)習(xí)基地 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-05-21 10:18 ? 次閱讀

我們?用一個(gè)簡(jiǎn)單的c程序例子,介紹c語(yǔ)言的基本構(gòu)成、格式、以及良好的書(shū)寫(xiě)風(fēng)格,加深小伙伴們對(duì)C語(yǔ)言的認(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 ”,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 ”,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ù)中。

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

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

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

標(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í)符分為如下三類(lèi):

1、關(guān)鍵字

關(guān)鍵字是具有特定含義的,專門(mén)用來(lái)說(shuō)明c語(yǔ)言特定成分的一類(lèi)標(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í)符分為兩類(lèi):

(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ī)則。

常量

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

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

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

①:二進(jìn)制:所有數(shù)字由0,1構(gòu)成,逢二進(jìn)一,二進(jìn)制數(shù)中不會(huì)出現(xiàn)2.。?例:110101?②:八進(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。。。。,然后將這些積求和。

例如:(1101)2=(13)10 (317)8=(207)10 (23E)16=(574)10

(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=(1011)2?(注意:去掉前面的兩個(gè)00,因?yàn)?在高位沒(méi)有意義)?④:十六進(jìn)制轉(zhuǎn)化二進(jìn)制:每一位數(shù)字轉(zhuǎn)換為四位二進(jìn)制數(shù)字?例:(E3)16=(1110 0011)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)整型。

(三)實(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ù))。

(四)字符常量

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

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

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

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

? 回車(chē)換行? 10? ? 橫向跳到下一制表位置? 9?? 退格? 8? ? 回車(chē)? 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ù)所代表的字符

(五)字符串常量

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

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

(六)符號(hào)常量

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

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

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

說(shuō)明:

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

變量

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

(一)整型變量

整型變量分為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ī)定。

類(lèi)型說(shuō)明符

說(shuō)明:

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

(二)實(shí)型變量

C語(yǔ)言中,實(shí)型變量分為單精度類(lèi)型( float )和雙精度類(lèi)型( 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ù)其類(lèi)型截取實(shí)型常量中相應(yīng)的有效數(shù)字。

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

(三)字符變量

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

char 變量名;

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

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

將一個(gè)字符賦給一個(gè)字符變量時(shí),并不是將該字符本身存儲(chǔ)到內(nèi)存中,而是將該字符對(duì)應(yīng)的ASCII碼存儲(chǔ)到內(nèi)存單元中。例如,字符 ′A′ 的ASCII碼為65,在內(nèi)存中的存放形式如下:01000001

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

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

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

char < int < float < double

即左邊級(jí)別“低“的類(lèi)型向右邊轉(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)左右兩邊的類(lèi)型不同,則賦值號(hào)右邊的類(lèi)型向左邊的類(lèi)型轉(zhuǎn)換;當(dāng)右邊的類(lèi)型高于左邊的類(lèi)型時(shí),則在轉(zhuǎn)換時(shí)對(duì)右邊的數(shù)據(jù)進(jìn)行截取。

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

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

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

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

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

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

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

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

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

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ù)類(lèi)型所占的字節(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)算符 (如 ? : )。

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

一、 基本的算術(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。

二、 算術(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ī)律類(lèi)似,其運(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ù)類(lèi)型不同,則先利用自動(dòng)轉(zhuǎn)換或強(qiáng)制類(lèi)型轉(zhuǎn)換,使兩者具有相同類(lèi)型,然后進(jìn)行運(yùn)算。

三、 自增自減運(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á)式的值和變量的值。

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

一、賦值運(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”。

說(shuō)明:

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

例: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 。

二、復(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ī)則依次類(lèi)推。

如求表達(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)=-132-132=-264 。

逗號(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é)果?

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

一、 C語(yǔ)言中的邏輯值

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

二、 邏輯表達(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的值,口訣:“一真必真”。

位運(yùn)算

一、 位運(yùn)算符

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

二、位運(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。

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

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

例如:?設(shè) a=15,?a>>2?表示把000001111右移為00000011(十進(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是00101101 ,若通過(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í)變量。

如 int a=3 , b=4;,想將a與b的值互換,可用如下語(yǔ)句實(shí)現(xiàn):?a=a∧b;

b=b∧a;

a=a∧b;

所以本題的答案為: 11110000 。

C語(yǔ)言作為一門(mén)非常適合編程入門(mén)的語(yǔ)言,打好基礎(chǔ)的重要性不言而喻。所以老九君特此奉上這一篇干貨,希望小伙伴們能從中受益。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7616

    瀏覽量

    137953
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4349

    瀏覽量

    63042

原文標(biāo)題:【必讀】超全的C語(yǔ)言基礎(chǔ)知識(shí)大全

文章出處:【微信號(hào):cyuyanxuexi,微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    小伙伴,還在為下不到年鑒而苦惱嗎?快來(lái)試試這個(gè)!

    小伙伴,還在為下不到年鑒而苦惱嗎?快來(lái)試試這個(gè)!夏澤網(wǎng)(www.xiaze.com)收錄了很多年鑒,非常齊全。趕快試試吧。
    發(fā)表于 10-13 16:59

    祝電子發(fā)燒友論壇的 小伙伴。中秋快樂(lè)!!!

    祝電子發(fā)燒友論壇的 小伙伴。中秋快樂(lè)!!!問(wèn)曰:今天是九月九日了。中秋是昨天。。。你這、答曰:很不好意思,,,本人昨天在湛江過(guò)的。壓根就沒(méi)有看見(jiàn)所謂的月亮。嗯,今天天氣很不錯(cuò)。嘿嘿,十五的月亮十六圓。今晚才是最好的賞月時(shí)間啊。ps:湛江昨天暴雨交加,,今天稍微好點(diǎn)了
    發(fā)表于 09-09 09:21

    植物小伙伴

    ` 本帖最后由 goyuqinghua 于 2014-9-16 17:22 編輯 我熱愛(ài)我的植物,但是不管我有多愛(ài)它們,有時(shí)候總是忘記照顧它們,給它們澆水。所以我制作了“植物小伙伴”。植物小伙伴
    發(fā)表于 09-16 17:14

    labview畫(huà)板答案都有公布了哈!小伙伴跟上節(jié)奏咯!【每日一練12.4】

    要求:(1)清空功能(2)可以截取子集(3)動(dòng)態(tài)顯示,畫(huà)方,畫(huà)圓時(shí)形狀隨著鼠標(biāo)移動(dòng)變化前兩天的功能大家都有實(shí)現(xiàn)了嘛?還沒(méi)有搞定的記得看匯總帖哦!答案都有公布了哈!小伙伴跟上節(jié)奏咯!LabVIEW每日一練qq群:73498596
    發(fā)表于 12-03 22:54

    數(shù)字頻率計(jì)的小伙伴有沒(méi)有

    數(shù)字頻率計(jì)的小伙伴有沒(méi)有
    發(fā)表于 08-12 13:36

    【云智易申請(qǐng)】辦公桌上的智能小伙伴

    申請(qǐng)理由:我的項(xiàng)目“辦公桌上的智能小伙伴”已入圍2015中國(guó)硬件大賽,其中重要技術(shù)Wifi的接入是關(guān)鍵,想通過(guò)貴公司的開(kāi)發(fā)板學(xué)習(xí)一下。項(xiàng)目描述:1.本產(chǎn)品是基于建立智能辦工桌的思路進(jìn)行研發(fā)的一款
    發(fā)表于 08-15 01:10

    【MiCOKit申請(qǐng)】辦公桌上的智能小伙伴

    申請(qǐng)理由:我的項(xiàng)目“辦公桌上的智能小伙伴”已入圍2015中國(guó)硬件大賽,其中重要技術(shù)Wifi的接入是關(guān)鍵,想通過(guò)貴公司的開(kāi)發(fā)板學(xué)習(xí)一下.項(xiàng)目描述:1.本產(chǎn)品是基于建立智能辦工桌的思路進(jìn)行研發(fā)的一款
    發(fā)表于 08-19 09:59

    vision各個(gè)模塊詳細(xì)說(shuō)明,英語(yǔ)不好小伙伴福利來(lái)了,趕快下手吧!

    vision各個(gè)模塊詳細(xì)說(shuō)明,英語(yǔ)不好小伙伴福利來(lái)了,趕快下手吧!
    發(fā)表于 10-17 17:53

    會(huì)用Protel ***(2004)的小伙伴幫幫忙

    現(xiàn)在需要在Protel ***繪制的電路原理圖中放置一個(gè)電流傳感器,可是找不到,哪位小伙伴知道怎么找,或者怎么畫(huà)。非常感謝!
    發(fā)表于 06-12 11:06

    小伙伴,教你如何合并 License,趕緊收藏哦

    本帖最后由 億道集團(tuán) 于 2019-4-24 12:54 編輯 小伙伴,教你如何合并License,趕緊收藏哦!
    發(fā)表于 12-28 15:56

    請(qǐng)小伙伴幫忙看看這個(gè)電路

    小伙伴,誰(shuí)能幫忙看下附件圖片的這部分電路,不是太懂。。。多謝多謝!~
    發(fā)表于 03-23 11:12

    “TA”憑借什么能夠?讓采購(gòu)、板廠、老板、小伙伴皆大歡喜

    `“TA”憑借什么能夠讓采購(gòu)、板廠、老板、小伙伴皆大歡喜。電子發(fā)燒友聯(lián)合Altium共同推出神秘新品,更邀請(qǐng)Altium專家直播分享,掃碼提前報(bào)名新品公測(cè)直播:申請(qǐng)線下新品公測(cè)入場(chǎng)券:【在線直播
    發(fā)表于 03-02 11:41

    MIUI 8.2.21 內(nèi)測(cè)版更新, 小伙伴我等你到周五

    MIUI 8.2.21 內(nèi)測(cè)版更新, 小伙伴我等你到周五
    發(fā)表于 02-23 10:54 ?1397次閱讀

    用python腳本來(lái)控制小伙伴windows電腦的開(kāi)機(jī)密碼

    代碼呢分兩部分,一部分是client端跟server端兩個(gè)。你只需要想辦法讓小伙伴運(yùn)行你的client端腳本就OK啦。不過(guò)在此之前你一定要在你的電腦上運(yùn)行server端哦~這樣子的話,client端會(huì)在你的小伙伴電腦上隨機(jī)生成一個(gè)密碼然后通過(guò)socket發(fā)給server端
    的頭像 發(fā)表于 01-28 15:19 ?4199次閱讀

    “TA”憑借什么能夠?讓采購(gòu)、板廠、老板、小伙伴皆大歡喜

    “TA”憑借什么能夠讓采購(gòu)、板廠、老板、小伙伴皆大歡喜。電子發(fā)燒友聯(lián)合altium共同推出神秘新品,更邀請(qǐng)Altium專家直播分享,掃碼提前報(bào)名新品公測(cè)直播:
    的頭像 發(fā)表于 03-02 11:51 ?1973次閱讀
    主站蜘蛛池模板: 国产福利资源在线 | 特一级黄色片 | 国产精品香蕉成人网在线观看 | 美女教师一级毛片 | 亚洲色图吧 | 色噜噜亚洲 | 国产理论 | 亚洲性爱城 | 亚洲第一黄色网 | 寡妇一级a毛片免费播放 | 午夜手机福利 | 久久精品伊人波多野结 | 天天夜夜狠狠一区二区三区 | 天天操天天玩 | 夜夜爱夜夜爽夜夜做夜夜欢 | 丁香婷婷综合五月综合色啪 | 97午夜精品 | 东京毛片 | 伊人伊成久久人综合网777 | 久久婷婷一区二区三区 | 手机看片福利久久 | 91男人| 日本黄色电影在线 | 色成网| 奇米影视一区 | 正在播放淫亚洲 | 48pao强力打造免费基地 | 五月天婷婷视频在线观看 | 国产激情电影综合在线看 | 亚洲 图片 小说 欧美 另类 | 国产高清色视频免费看的网址 | 91国在线啪精品一区 | 国产欧美日韩haodiaose | www色.com| 亚洲一区在线播放 | 国产精品欧美久久久久天天影视 | 福利影院在线 | 1300部小u女视频免费 | 深爱五月综合网 | 加勒比啪啪 | 午夜视频在线观看一区 |