C語言快速入門系列之基本語法總結(jié)和規(guī)則詳解

本節(jié)引言

在上一節(jié)中膜钓,對于C語言有了一個(gè)初步的了解枝秤,學(xué)會(huì)了如何使用IDE來進(jìn)行?

代碼編寫醋拧,編譯和運(yùn)行。而這一節(jié)淀弹,我們會(huì)對C語言的基本語法進(jìn)行學(xué)習(xí)丹壕,?

C語言是一門編程語言,可以和英語進(jìn)行類比薇溃,英語句子 = 單詞 + 語法菌赖,?

同樣C語言的代碼語句,也有著自己的一套規(guī)則沐序。

本節(jié)學(xué)習(xí)路線圖

1.基本字符集

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

何為標(biāo)識(shí)符琉用?

在C語言中,符號(hào)常量,變量,數(shù)組,函數(shù)等都需要一定的名稱,我們把這種名稱成為標(biāo)識(shí)符

標(biāo)識(shí)符劃分

關(guān)鍵字,預(yù)定義標(biāo)識(shí)符和用戶標(biāo)識(shí)符策幼!

標(biāo)識(shí)符的命名規(guī)則邑时?

只能夠由字母,數(shù)字特姐,下劃線晶丘,或者美元符號(hào)($)組成,且不能以數(shù)字開頭;?小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 六二七,零一二唐含,四六四 】浅浮,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)捷枯!裙內(nèi)有開發(fā)工具脑题,很多干貨和技術(shù)資料分享!

C語言區(qū)分大小寫铜靶,通常變量名和函數(shù)名都用小寫字母表示;?

雖然沒有規(guī)定名稱的長度叔遂,但還是別寫太長,最好是見名知義争剿,比如int max一看就知道?

是用來存放最大值的!還有已艰,不能和下面的32個(gè)C語言的關(guān)鍵字重名哦!以及C語言?

中系統(tǒng)先定義的標(biāo)識(shí)符蚕苇,如系統(tǒng)類庫哩掺,系統(tǒng)常量名系統(tǒng)函數(shù)名,?

如(格式輸出函數(shù):printf())涩笤;重名嚼吞!

1.2 關(guān)鍵字「保留字」

何為關(guān)鍵字盒件?

C語言中具有特殊含義的英文單詞,通常用于構(gòu)成語句,存儲(chǔ)數(shù)據(jù),定義數(shù)據(jù)類型等

C語言里的32個(gè)關(guān)鍵字參照圖,不用記舱禽,用到的時(shí)候再去了解炒刁!

1.3 分隔符

空白符:在程序中加入適當(dāng)?shù)目瞻卓s進(jìn)代碼,會(huì)使得程序更加清晰易讀誊稚。小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 六二七翔始,零一二,四六四 】里伯,無論你是大牛還是小白城瞎,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具疾瓮,很多干貨和技術(shù)資料分享脖镀!

普通分隔符

分號(hào)「?;?」:語句結(jié)尾

大括號(hào)「?{ }?」:函數(shù)體,復(fù)合語句以及數(shù)組的初始化等狼电;

圓括號(hào)「?()?」:函數(shù)定義時(shí)用來括住參數(shù)蜒灰,或者用來修改運(yùn)算順序,?

比如:(a + 1)?2 和 a + (1?2)

方括號(hào)「?[]?」定義數(shù)組類型和應(yīng)用元素漫萄,比如: int a10; b = a3;

點(diǎn)號(hào)「?.?」:結(jié)構(gòu)體仲引用成員

逗號(hào)「?,?:參數(shù)分隔卷员,比如:int a,b,c;

注釋符:?// 單行注釋, /**/多行注釋

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

2.1 基本數(shù)據(jù)類型

注意:這里沒有給出數(shù)據(jù)類型的取值范圍與精度域?qū)挼龋詾樵诓煌挠?jì)算機(jī)?

字長與系統(tǒng)環(huán)境下占用的內(nèi)存空間是不一樣的,可以通過sizeof獲得對應(yīng)數(shù)據(jù)類?

型在該系統(tǒng)環(huán)境下所占的字節(jié)腾务,從而算出對應(yīng)數(shù)據(jù)類型的取值范圍毕骡!

整型:用于準(zhǔn)確地表示整數(shù),根據(jù)表示范圍的不同分為以下三種:?

短整型(short) < 整型(int) < 長整型(long)

實(shí)型(浮點(diǎn)型):用于標(biāo)識(shí)實(shí)數(shù)(小數(shù))根據(jù)范圍和精度不同分為以下兩種:?

單精度浮點(diǎn)數(shù)(float)?<?雙精度浮點(diǎn)數(shù)(double)?

注意:float只能夠保證7位數(shù)字是有效的!!!

字符型?: 用來描述單個(gè)字符,char?

除了上面三種以外,還可以使用long?short?signed?unsigned?來修飾不同的數(shù)據(jù)類型:?

(char只能用后面兩個(gè)),有符號(hào)與無符號(hào)的區(qū)別是:最高位是否為符號(hào)位,?

即最高位是否用于表示數(shù)的整負(fù);我們可以添加unsigned來保證此數(shù)據(jù)為正數(shù),?

同時(shí)對應(yīng)的數(shù)據(jù)范圍由0到原來的最大值 * 2

2.2 其他數(shù)據(jù)類型

數(shù)組,指針,結(jié)構(gòu)體,共用體,枚舉岩瘦,指針類型,文件類型,空類型(void)未巫,后面會(huì)學(xué),這里不講启昧。

3.常量與變量

3.1 常量

整型常量

除上述三種外叙凡,還可以在常量后面添加后綴:L或者U,比如:?

108L表示長整型的常量密末,與108雖然數(shù)值相等握爷,但分配的內(nèi)存空間大小是不一樣的;?

0xA3U:表示無符號(hào)位的十六進(jìn)制數(shù)0xA3

實(shí)型常量

Tips:所謂的規(guī)范化的指數(shù)形式就是:小數(shù)點(diǎn)左邊有一位非零的數(shù)字(只有一位)?

比如:2.4E3 是對的严里,而0.1E5 則是錯(cuò)的新啼。

字符常量

附上C里的轉(zhuǎn)義字符:

轉(zhuǎn)義字符作用轉(zhuǎn)義字符作用轉(zhuǎn)義字符作用轉(zhuǎn)義字符作用

\n回車換行\(zhòng)t水平制表\v垂直制表\b退格

\r回車不換行\(zhòng)f走紙換頁\0控制符\\右斜線

\'單引號(hào)\"雙引號(hào)\a響鈴

字符串常量

用一對雙引號(hào)括起來的或者多個(gè)字符構(gòu)成的字符串序列,如:?

“”,”apple”,”+-*/@#$%”

系統(tǒng)會(huì)在存儲(chǔ)字符串的時(shí)候自動(dòng)加上‘\0’刹碾,字符串結(jié)束的標(biāo)志?

如:”a”這個(gè)字符串占兩個(gè)字節(jié)燥撞,因?yàn)榇鎯?chǔ)的時(shí)候其實(shí)是:”a\0”

符號(hào)常量

又叫宏常量,是一個(gè)預(yù)處理命令:#define 常量名 常量值

定義后,程序所有出現(xiàn)這個(gè)標(biāo)識(shí)的地方都可以用這個(gè)常量來代替:?

如: #define PI 3.1415926 s = r * r * PI物舒,這里的PI就是3.1415926

3.2 變量

什么是變量?

答:程序運(yùn)行過程中,他的值可以改變的數(shù)據(jù),代表著一個(gè)存儲(chǔ)空間,需要用變量名?

來找到這個(gè)數(shù)據(jù)就像:你去超市,放東西到儲(chǔ)物柜的一格,他會(huì)給你一張紙條,你根據(jù)?

這個(gè)紙條才可以拿回自己的東西儲(chǔ)物柜的一格就是變量的內(nèi)存空間,字條就是變量名,?

你拿和放就是修改變量名對應(yīng)內(nèi)存中的數(shù)據(jù)色洞。

變量的使用:

一個(gè)簡單的 int a = 123;其實(shí)暗地里執(zhí)行了以下操作

int a:在內(nèi)存中開辟了四個(gè)字節(jié)的內(nèi)存空間,并且為這個(gè)空間起了個(gè)名字,叫做a;

后面的=123,這一步完成的是變量的初始化,就是通過a這個(gè)變量名,往4個(gè)字節(jié)的?

內(nèi)存中放入123這個(gè)數(shù)據(jù)

Tips

一個(gè)好的建議是,當(dāng)我們定義一個(gè)變量時(shí),對其進(jìn)行初始化,可以有效的?

避免空指針問題的出現(xiàn);

你可以通過&a獲得存放123這個(gè)數(shù)據(jù)的內(nèi)存地址的值冠胯!

4.運(yùn)算符與表達(dá)式

4.1 算術(shù)運(yùn)算符

經(jīng)典例子:倒序輸出五位數(shù)

#includeint main()

{

? ? int a,i;

? ? printf("請輸入需要倒序輸出的五位數(shù)\n");

? ? scanf("%d",&a);

? ? printf("輸出倒序后的五位數(shù):\n");

? ? for(i = 0;i<5;i++)

? ? {

? ? ? ? printf("%d",a%10);

? ? ? ? a /= 10;

? ? }

? ? printf("\n");

? ? return 0;

}


4.2 關(guān)系運(yùn)算符

經(jīng)典例子

#includeint main()

{

? ? int a = 1,b = 2,c = 3;

? ? int x,y;

? ? x = a + b == c;? ? //結(jié)果為1為真

? ? y = 11 >b != a;? ? //11 >b 結(jié)果為真,即為1, 1 != 1,假

? ? printf("x = %d,y = %d\n",x,y);

? ? return 0;

}

4.3 邏輯運(yùn)算符

經(jīng)典例子:判斷某一年是否為閏年

#includeint main()

{

? ? int year;

? ? printf("請輸入需要判斷的年份:\n");

? ? scanf("%d",&year);

? ? if(!(year%4)&&year%100 || !(year % 400))

? ? {printf("%d年是閏年\n",year);}

? ? else printf("%d年不是閏年!\n,year");

? ? return 0;

}

4.4 賦值運(yùn)算符

經(jīng)典例子:賦值運(yùn)算符的嵌套火诸,一般題目會(huì)問某個(gè)變量在某時(shí)刻的值

#includeint main()

{

? ? int a,b,c;

? ? //普通賦值:

? ? a = 2,b= 6,c = 26;

? ? a *= b = c = 3;? ? //a = 6,b=3,c=3;

? ? printf("a = %d,b = %d,c = %d\n",a,b,c);

? ? a += b +=c;? ? //a = 12,b=6,c =3

? ? printf("a = %d,b = %d,c = %d\n",a,b,c);

? ? a = b == c + 5;? //a = 0,b = 6,c = 3

? ? printf("a = %d,b = %d,c = %d\n",a,b,c);

? ? return 0;

}


4.5 條件表達(dá)式

經(jīng)典例子:用條件表達(dá)式實(shí)現(xiàn)求三個(gè)數(shù)的最大值

#includeint main()

{

? ? int a,b,c;

? ? int max;

? ? printf("請輸入三個(gè)數(shù):\n");

? ? scanf("%d%d%d",&a,&b,&c);

? ? a > b ? (max = a):(max = b);

? ? max < c? (max = c):max;

? ? printf("輸出最大值:%d\n",max);

? ? return 0;

}

4.6 逗號(hào)表達(dá)式

經(jīng)典例子:逗號(hào)表達(dá)式的值

#includeint main()

{

? ? //int a = b = c = 5;是不合法的啊涵叮!

? ? int a,b,c;

? ? a = b = c = 1;

? ? c = (a = 10,b = 10,2 * a + 5,a + a * b + c);

? ? //輸出結(jié)果:10,10,111;

? ? printf("a = %d,b = %d,c = %d\n",a,b,c);

? ? return 0;

}

4.7 長度測試運(yùn)算符

sizeof:通常用來測試某個(gè)數(shù)據(jù)類型所占的內(nèi)存空間大小

經(jīng)典例子:測試的是int,float,char類型在本機(jī)所占的字節(jié)數(shù)

#include

int main()? ?

{? ?

? ? int a = 1;? ?

? ? float b = 1.1;? ?

? ? char c = 'c';? ?

? ? printf("%d,%d,%d\n",sizeof(a),sizeof(b),sizeof(c));? ?

? ? return 0;? ?

}?

4.8 運(yùn)算符的優(yōu)先級(jí)

口訣括號(hào)最大 > 惭蹂! > 算數(shù)運(yùn)算符 > 關(guān)系運(yùn)算符 > 邏輯與或 > ?賦值運(yùn)算符

另外伞插,記得口訣就好割粮,不要去記表,用到的時(shí)候再查媚污,查多久熟了舀瓢。

5.數(shù)據(jù)類型的轉(zhuǎn)換

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市耗美,隨后出現(xiàn)的幾起案子京髓,更是在濱河造成了極大的恐慌,老刑警劉巖商架,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堰怨,死亡現(xiàn)場離奇詭異,居然都是意外死亡蛇摸,警方通過查閱死者的電腦和手機(jī)备图,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赶袄,“玉大人揽涮,你說我怎么就攤上這事《龇危” “怎么了蒋困?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長敬辣。 經(jīng)常有香客問我雪标,道長,這世上最難降的妖魔是什么溉跃? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任村刨,我火速辦了婚禮,結(jié)果婚禮上喊积,老公的妹妹穿的比我還像新娘烹困。我一直安慰自己,他們只是感情好乾吻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布髓梅。 她就那樣靜靜地躺著拟蜻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪枯饿。 梳的紋絲不亂的頭發(fā)上酝锅,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音奢方,去河邊找鬼搔扁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蟋字,可吹牛的內(nèi)容都是我干的稿蹲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鹊奖,長吁一口氣:“原來是場噩夢啊……” “哼苛聘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起忠聚,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤设哗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后两蟀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體网梢,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年赂毯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了战虏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡欢瞪,死狀恐怖活烙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情遣鼓,我是刑警寧澤啸盏,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站骑祟,受9級(jí)特大地震影響回懦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜次企,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一怯晕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧缸棵,春花似錦舟茶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽隧出。三九已至,卻和暖如春阀捅,著一層夾襖步出監(jiān)牢的瞬間胀瞪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國打工饲鄙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凄诞,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓忍级,卻偏偏與公主長得像帆谍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子颤练,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容