一、關(guān)鍵字
1.什么是關(guān)鍵字
關(guān)鍵字就是 C語(yǔ)言提供的有特殊含義的符號(hào) ,有些地方也叫做“保留字”。
2.一共有哪些關(guān)鍵字
C語(yǔ)言一共提供了32個(gè)關(guān)鍵字,這些關(guān)鍵字都被C語(yǔ)言賦予了特殊含義。
auto
double
int
struct
break
else
long
switch
case
enum
register typedef char
extern
return
union
const
float
short
unsigned
continue
for
signed
void
default
goto
sizeof
volatile
do
if
while
static
大致瀏覽一遍即可,不用去百度每個(gè)關(guān)鍵字的作用,這些關(guān)鍵字以后會(huì)經(jīng)常用到的,到時(shí)候你想不記住都難。
3.如何辨別關(guān)鍵字
這些關(guān)鍵字會(huì)經(jīng)常跟其他符號(hào)混在一起使用,一個(gè)程序里面這么多英文符號(hào),我怎么知道那些是關(guān)鍵字呢?關(guān)鍵字有2大特征:
1> 全部都是小寫(xiě)
2> 在開(kāi)發(fā)工具或者智能文本編輯工具(比如UltraEdit)中會(huì)顯示特殊顏色
比如下面這段C程序在UltraEdit中呈現(xiàn)的樣子
在這段代碼中,只有 int 和 return 是關(guān)鍵字,C語(yǔ)言中的所有關(guān)鍵字在UltraEdit中都會(huì)顯示 藍(lán)色 !可以看出,main并不是關(guān)鍵字。至于 int 和 return 究竟有什么特殊含義,這里先不做討論,后面會(huì)詳細(xì)介紹。
二、標(biāo)識(shí)符
1.什么是標(biāo)識(shí)符
標(biāo)識(shí)符就是 在程序中自定義的一些符號(hào)和名稱 。要跟關(guān)鍵字區(qū)分開(kāi)來(lái):關(guān)鍵字是C語(yǔ)言默認(rèn)提供的符號(hào),標(biāo)識(shí)符是程序員自定義的。
2.標(biāo)識(shí)符的作用
1> 標(biāo)識(shí)符,從字面上理解就是用來(lái)標(biāo)識(shí)某些東西的符號(hào),標(biāo)識(shí)的目的就是為了將這些東西區(qū)分開(kāi)來(lái)。其實(shí),標(biāo)識(shí)符的作用就跟人類的名字差不多,為了區(qū)分每個(gè)人,就在每個(gè)人出生的時(shí)候起了個(gè)名字。
2> 上一篇文章 說(shuō)到:C語(yǔ)言是由函數(shù)構(gòu)成的,一個(gè)C程序中可能會(huì)有多個(gè)函數(shù),為了區(qū)分這些函數(shù),就給每一個(gè)函數(shù)都起了個(gè)名稱。 函數(shù)的名稱就是標(biāo)識(shí)符的一種 。除了函數(shù),以后還會(huì)學(xué)到“變量”這個(gè)概念, 變量的名稱也是標(biāo)識(shí)符 。
因此,上面的代碼中: int 和 return 是關(guān)鍵字,main是標(biāo)識(shí)符
3.標(biāo)識(shí)符命名規(guī)則
標(biāo)識(shí)符是由程序員自定義的,但是不能隨便命名,它有以下幾點(diǎn)命名規(guī)則:
1> 只能由 26個(gè)英文字母的大小寫(xiě) 、 10個(gè)阿拉伯?dāng)?shù)字0~9 、 下劃線_ 組成。
下面的標(biāo)識(shí)符都是 正確 的:
test1 Mike2jack My_tExt
下面的標(biāo)識(shí)符都是 錯(cuò)誤 的:
test!
32
haha(da)tt 哈哈_text
2> 嚴(yán)格區(qū)分大小寫(xiě) ,同一段英文字母的大寫(xiě)和小寫(xiě)是兩個(gè)不同的標(biāo)識(shí)符。
比如:main和Main是兩個(gè)不同的標(biāo)識(shí)符
3> 不能以數(shù)字開(kāi)頭 。
下面的標(biāo)識(shí)符都是 錯(cuò)誤 的:
123haha 78text
98111
4> 不可以使用關(guān)鍵字作為標(biāo)識(shí)符 。
下面的函數(shù)是 錯(cuò)誤 的:
1
int
int
()
2
{
3
return
0
;
4
}
函數(shù)的名稱是標(biāo)識(shí)符的一種,而第1行的函數(shù)名稱叫做int,int是C語(yǔ)言中的關(guān)鍵字,這是不合法的,肯定會(huì)報(bào)語(yǔ)法錯(cuò)誤。
4.標(biāo)識(shí)符命名規(guī)范
這個(gè)命名規(guī)范,你不一定要遵守。不過(guò)呢,90%的優(yōu)秀程序員都是按照這個(gè)規(guī)范去走的。
1> 盡量起個(gè)有意義的名稱,比如一個(gè)完整的英文單詞,別人一看這個(gè)名稱就能才能這個(gè)標(biāo)識(shí)符的作用。如果不懂英文,你也可以用拼音,盡量不要起像abcde、sfsdfsdf等這類看起來(lái)沒(méi)有意義的名稱
2> 如果標(biāo)識(shí)符中含有多個(gè)單詞,可以使用駝峰標(biāo)識(shí)(除開(kāi)第一個(gè)單詞,后面每個(gè)單詞的首字母都是大寫(xiě)):firstName、myFirstName,或者使用下劃線_來(lái)連接:first_name、my_first_name
三、注釋
1.什么是注釋
- 注釋是在所有計(jì)算機(jī)語(yǔ)言中都非常重要的一個(gè)概念,從字面上看,就是注解、解釋的意思。
- 注釋可以用來(lái)解釋某一段程序或者某一行代碼是什么意思,方便程序員之間的交流。假如我寫(xiě)完一行代碼后,加上相應(yīng)的注釋,那么別人看到這個(gè)注釋就知道我的這行代碼是做什么用的。
- 注釋可以是任何文字,也就是說(shuō)可以寫(xiě)中文。
注意:直接在代碼中寫(xiě)上一大段中文是不行的,編譯器會(huì)報(bào)錯(cuò)
1
這是一個(gè)主函數(shù),C程序的入口點(diǎn)
2
int
main()
3
{
4
return
0
;
5
}
第1行寫(xiě)了一段中文,用來(lái)解釋main函數(shù)的作用,但是這段代碼是不能編譯成功的。第1行的中文并不叫注釋,注釋有它特定的格式。
2.注釋的種類
C語(yǔ)言中一共有2種注釋:?jiǎn)涡凶⑨尅⒍嘈凶⑨尅4蟛糠指呒?jí)語(yǔ)言都有這2種注釋。
1> 單行注釋
單行注釋以兩個(gè)正斜杠開(kāi)頭,也就是以 // 開(kāi)頭,只能注釋一行,從 // 開(kāi)始到這行的結(jié)尾都是注釋的內(nèi)容
1
#include <stdio.h>
2
3
//
這是一個(gè)主函數(shù),C程序的入口點(diǎn)
4
int
main()
5
{
6
//
這句代碼可以在屏幕輸出Hello World這一串文字
7
printf(
"
Hello World
"
);
8
return
0
;
9
}
第3行、第6行都是注釋,注釋在開(kāi)發(fā)工具中一般都是綠色的。可以看出,這里第3行的注釋是用來(lái)解釋第4行代碼的,第6行的注釋是用來(lái)解釋第7行代碼的。一般就是這樣寫(xiě)單行注釋,用來(lái)解釋某一行代碼的作用。
注釋也可以寫(xiě)在某條語(yǔ)句的后面
1
#include <stdio.h>
2
3
//
這是一個(gè)主函數(shù),C程序的入口點(diǎn)
4
int
main()
5
{
6
printf(
"
Hello World
"
);
//
這句代碼可以在屏幕輸出Hello World這一串文字
7
return
0
;
8
}
第6行分號(hào);后面的綠色文字都是注釋。
如果將//放到printf的前面,那么整個(gè)第6行都屬于注釋。
1
#include <stdio.h>
2
3
//
這是一個(gè)主函數(shù),C程序的入口點(diǎn)
4
int
main()
5
{
6
//
printf("Hello World"); 這句代碼可以在屏幕輸出Hello World這一串文字
7
return
0
;
8
}
你會(huì)發(fā)現(xiàn)整個(gè)第6行都變成了綠色,說(shuō)明整個(gè)第6行都是注釋。
2> 多行注釋
//只能用來(lái)注釋一行文字,如果有多行文字都需要注釋,那么就可以用多行注釋。多行注釋以/*開(kāi)頭,以*/結(jié)尾,/*和*/中間的內(nèi)容都是注釋。
1
/*
2
作者:MJ
3
描述:第一個(gè)C語(yǔ)言程序
4
作用:這是一個(gè)主函數(shù),C程序的入口點(diǎn)
5
*/
6
int
main()
7
{
8
return
0
;
9
}
第1行到第5行的內(nèi)容都是注釋
3.注釋的嵌套
1> 單行注釋可以嵌套單行注釋、多行注釋
1
//
哇哈哈
//
呵呵呵
2
3
//
/* fsdfsdf */
//
sdfsdfsd
這2行的所有內(nèi)容都是注釋
2> 多行注釋可以嵌套單行注釋
1
/*
2
// 作者:MJ
3
// 描述:第一個(gè)C語(yǔ)言程序
4
作用:這是一個(gè)主函數(shù),C程序的入口點(diǎn)
5
*/
這幾行的所有內(nèi)容都是注釋
3> 多行注釋 不能 嵌套多行注釋
1
/*
哈哈哈
2
3
/*
4
嘻嘻嘻
5
*/
6
7
呵呵呵 */
你會(huì)發(fā)現(xiàn)只有第1到第5行才是注釋,第7行并不屬于注釋。因?yàn)?*找到第一個(gè)*/后就算注釋結(jié)束了,而第1個(gè)*/在第5行。
4> 下面的寫(xiě)法是 錯(cuò)誤 的
1
//
/*
2
哈哈哈
3
*/
只有第1行是注釋,第2~3行都不是注釋
4.注釋的細(xì)節(jié)
1> 注釋是寫(xiě)給人看的,不是給計(jì)算機(jī)看的。計(jì)算機(jī)怎么可能看得我們寫(xiě)的中文嘛。因此, 當(dāng)編譯程序的時(shí)候,并不會(huì)將注釋編譯到目標(biāo)文件中 。
換句話說(shuō):被注釋掉的語(yǔ)句是不會(huì)被執(zhí)行的。
1
int
main()
2
{
3
//
printf("Hello");
4
return
0
;
5
}
第3行的語(yǔ)句被注釋掉了,因此,運(yùn)行程序的時(shí)候,并不會(huì)執(zhí)行第3行的語(yǔ)句,屏幕上沒(méi)有任何輸出。
2> 要養(yǎng)成寫(xiě)注釋的良好習(xí)慣。絕大部分項(xiàng)目經(jīng)理檢查下屬代碼的第一件事就是看有沒(méi)有寫(xiě)注釋,也有很多公司的機(jī)試也會(huì)檢查注釋(機(jī)試就是給你一道編程題、一臺(tái)電腦,在規(guī)定時(shí)間內(nèi)解題)。
3> 為什么注釋這么重要呢?
- 今天,你寫(xiě)了幾百行代碼,很高興,做出了一個(gè)非常不錯(cuò)的功能,但是,忘了寫(xiě)注釋。一個(gè)星期過(guò)后,你再回去看那一段代碼,你可能完全看不懂了,這是很正常的事。如果你寫(xiě)了注釋,那情況就不一樣了,注釋可以幫助你回顧代碼的作用。
- 你在某家公司待了1年多,寫(xiě)了10幾萬(wàn)行代碼,但是你不寫(xiě)一點(diǎn)注釋。有一天你離職了,新的員工接手你做的項(xiàng)目,他首先要做的事情肯定是要讀懂你寫(xiě)的代碼。可是你一點(diǎn)注釋都沒(méi)寫(xiě),10萬(wàn)行代碼,全部都是英文,這會(huì)讓這位新員工非常地蛋疼。每個(gè)人都有自己的思想,寫(xiě)代碼的思路肯定是不一樣的,看別人寫(xiě)的代碼是件非常痛苦的事情,特別是沒(méi)有注釋的代碼。你不寫(xiě)注釋的做法會(huì)大大降低公司的開(kāi)發(fā)效率。因此,所有的正規(guī)公司都非常重視注釋。
5.注釋的隱藏功能
1> 排錯(cuò)
其實(shí),如果你利用得當(dāng)?shù)脑挘⑨尣粌H僅是可以用來(lái)解釋程序,還可以用來(lái)排除錯(cuò)誤。
比如下面的代碼
1
#include <stdio.h>
2
3
int
main()
4
{
5
printf(
"
111\n
"
);
6
printf(
"
222\n
"
)
7
printf(
"
333\n
"
);
8
return
0
;
9
}
編譯程序,你會(huì)發(fā)現(xiàn)編譯失敗。這個(gè)時(shí)候你可以將比較可疑的代碼給注釋了,比如注釋第6行,因?yàn)楦杏X(jué)第6行好像少了點(diǎn)什么東西
1
#include <stdio.h>
2
3
int
main()
4
{
5
printf(
"
111\n
"
);
6
//
printf("222\n")
7
printf(
"
333\n
"
);
8
return
0
;
9
}
再編譯一遍,發(fā)現(xiàn)編譯成功了。說(shuō)明就是第6行代碼出錯(cuò)了!!!
2> 檢查代碼的作用
在工作中,偶爾會(huì)遇到自己不會(huì)做的功能,這時(shí)候我們就要去網(wǎng)上找一些別人寫(xiě)好的代碼來(lái)填補(bǔ)自己的項(xiàng)目。但是別人寫(xiě)的代碼不可能完全符合我們的需求啊,于是需要裁剪部分有用的代碼出來(lái),怎么知道哪一部分是有用的代碼呢?那么你就要搞清楚每一行代碼的作用。這個(gè)時(shí)候,我們利用注釋來(lái)弄清楚每一行代碼的作用。
比如,下面這段程序,我想知道第3行代碼的作用
1
int
main()
2
{
3
printf(
"
Hello
"
);
4
return
0
;
5
}
這個(gè)時(shí)候你可以先把程序運(yùn)行一遍,看看運(yùn)行效果,運(yùn)行效果就是:在屏幕上輸出了Hello這一串內(nèi)容。
接著你把第3行代碼注釋了
1
int
main()
2
{
3
//
printf("Hello");
4
return
0
;
5
}
然后再運(yùn)行一遍程序,發(fā)現(xiàn)屏幕上并沒(méi)有輸出以前的Hello。說(shuō)明第3行代碼的作用就是:在屏幕上輸出了Hello這一串內(nèi)容!!!總結(jié)來(lái)說(shuō),就是 把注釋后跟注釋前的運(yùn)行效果做一個(gè)對(duì)比,看看有沒(méi)有少了什么效果,如果少了某些效果,說(shuō)明被注釋代碼的作用就是實(shí)現(xiàn)這個(gè)少掉的效果 。這句話可能有點(diǎn)繞,好好體會(huì)一下,對(duì)你大有幫助!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

