關(guān)于C語(yǔ)言的那些小知識(shí),準(zhǔn)備學(xué)習(xí)或者剛剛?cè)腴T(mén)的你已經(jīng)了解了嗎?
語(yǔ)言種類(lèi)
編譯語(yǔ)言
靜態(tài)聲明語(yǔ)言
面向過(guò)程的編程語(yǔ)言
環(huán)境工具
編譯環(huán)境:CC
執(zhí)行環(huán)境:Linux
打印輸出功能
stdio.h庫(kù)中的printf函數(shù)
主函數(shù)(入口函數(shù))
程序的執(zhí)行入口,就是程序執(zhí)行的第一個(gè)函數(shù)(自動(dòng)執(zhí)行,其他函數(shù)相當(dāng)于是在這個(gè)函數(shù)體內(nèi)調(diào)用的)
名字main(該函數(shù)是自動(dòng)執(zhí)行的 所以 你不可以改名字)
只要我們寫(xiě)C語(yǔ)言程序并且該文件需要被執(zhí)行 都需要寫(xiě)main函數(shù)
main函數(shù)返回值的意義:該程序的錯(cuò)誤碼(0代表正常 非0代表錯(cuò)誤),是程序與系統(tǒng)交互的方式
main函數(shù)的參數(shù)
第一個(gè)參數(shù)數(shù)據(jù)類(lèi)型:int類(lèi)型;意義:終端敲入的指令按空格切割之后形成的小字符串的個(gè)數(shù)
第二個(gè)參數(shù)數(shù)據(jù)類(lèi)型:char*數(shù)組類(lèi)型;意義:終端敲入的指令按空格切割之后形成的小字符串組成的字符串?dāng)?shù)組
變量以及數(shù)據(jù)類(lèi)型
聲明與賦值
聲明:數(shù)據(jù)類(lèi)型關(guān)鍵字 變量名;
賦值:變量名=變量值;
需要“先聲明后使用”,否則會(huì)報(bào)警告錯(cuò)誤
變量名不要與函數(shù)名同名
數(shù)據(jù)類(lèi)型分類(lèi)
int 整形
char* 字符串
變量名[]:數(shù)組
int 變量名[]: 整形數(shù)組
char* 變量名[]: 字符串?dāng)?shù)組
分支與循環(huán)
分支的結(jié)構(gòu)以及規(guī)范
if (條件語(yǔ)句) {// 真區(qū)間} else {// 假區(qū)間}
循環(huán)的結(jié)構(gòu)以及規(guī)范
int i;for (i = 0; i < 次數(shù); i++) {// 循環(huán)體}
函數(shù)的聲明與調(diào)用
函數(shù)的聲明
// 函數(shù)的完整聲明(有函數(shù)體 可調(diào)用)函數(shù)返回值的類(lèi)型關(guān)鍵字 函數(shù)名(形參1, 形參2){return 返回值; // 注意返回值的數(shù)據(jù)類(lèi)型要與聲明函數(shù)時(shí)寫(xiě)的類(lèi)型關(guān)鍵字一致}// 函數(shù)的簡(jiǎn)易聲明(沒(méi)有函數(shù)體 不可調(diào)用 只做解釋說(shuō)明該函數(shù)的意義參數(shù)返回值)函數(shù)返回值的類(lèi)型關(guān)鍵字 函數(shù)名(形參1, 形參2);
形參的設(shè)置:因?yàn)槭庆o態(tài)聲明語(yǔ)言并且沒(méi)有聲明變量關(guān)鍵字,所以在聲明函數(shù)中形參位置是需要有數(shù)據(jù)類(lèi)型關(guān)鍵字的
復(fù)合類(lèi)型的聲明以及操作
復(fù)合類(lèi)型的種類(lèi)
·數(shù)組:同類(lèi)事物的集合
復(fù)合類(lèi)型的聲明
·數(shù)組的聲明:元素?cái)?shù)據(jù)類(lèi)型關(guān)鍵字 變量名[]
復(fù)合類(lèi)型的增刪改查
·數(shù)組的取值:變量名[索引]
多文件操作
引入模塊:將該文件內(nèi)容賦值粘貼在主文件中
引入內(nèi)置模塊#include <庫(kù)名>, 存放在執(zhí)行環(huán)境中的/usr/include目錄中
引入非內(nèi)置模塊#include "文件路徑"
每一個(gè)文件都是一個(gè)模塊
幾種相關(guān)文件類(lèi)型
.c文件:C語(yǔ)言源碼文件
.out文件:C語(yǔ)言編譯之后的機(jī)器碼可執(zhí)行文件(源碼中有main函數(shù))
.o文件:C語(yǔ)言編譯之后的機(jī)器碼不可知性文件(源碼中沒(méi)有main函數(shù))
.h文件:頭文件,解釋說(shuō)明函數(shù)的意義參數(shù)返回值,內(nèi)容為子函數(shù)的簡(jiǎn)易聲明代碼
多文件操作的演變流程
為了提升代碼三性所以將部分函數(shù)按照功能模塊進(jìn)行劃分在不同的文件當(dāng)中
利用cc工具可以同時(shí)編譯多個(gè)文件的特性一起編譯--->會(huì)因?yàn)樵谥魑募袥](méi)有聲明導(dǎo)致報(bào)警告錯(cuò)誤
在主文件當(dāng)中將分文件引入--->編譯緩慢
將分文件加-c參數(shù)提前編譯成.o文件 并利用cc的多文件編譯 將.o文件與主文件共同編譯--->會(huì)因?yàn)樵谥魑募袥](méi)有聲明導(dǎo)致報(bào)警告錯(cuò)誤 同時(shí) 也不利于代碼的維護(hù)性(看不出子函數(shù)的意義參數(shù)返回值)
聲明.h頭文件并在主文件中引入頭文件--->即保證了編譯的效率 同時(shí)他也不會(huì)報(bào)警告錯(cuò)誤同時(shí)也有利于維護(hù)性
常用的內(nèi)置模塊(在C語(yǔ)言中稱(chēng)之為“庫(kù)”)
stdio.h 標(biāo)準(zhǔn)輸入輸出流庫(kù) 可以使程序與標(biāo)準(zhǔn)輸入/標(biāo)準(zhǔn)輸出交互的庫(kù)
printf函數(shù)
意義:打印輸出
參數(shù):打印輸出的內(nèi)容
返回值:如果成功,則返回寫(xiě)入的字符總數(shù),否則返回一個(gè)負(fù)數(shù)。
審核編輯 :李倩
-
C語(yǔ)言
+關(guān)注
關(guān)注
183文章
7646瀏覽量
146208 -
編程語(yǔ)言
+關(guān)注
關(guān)注
10文章
1965瀏覽量
39900 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4423瀏覽量
67884
原文標(biāo)題:【C語(yǔ)言知識(shí)】這些知識(shí)你都不知道,難怪說(shuō)你學(xué)不懂C語(yǔ)言!
文章出處:【微信號(hào):cyuyanxuexi,微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
C語(yǔ)言核心視頻課程-從小工到專(zhuān)家
C語(yǔ)言主要特點(diǎn)
汽車(chē)網(wǎng)絡(luò)安全開(kāi)發(fā)語(yǔ)言選型指南:C/C++/Rust/Java等主流語(yǔ)言對(duì)比+Perforce QAC/Klocwork工具支持
C語(yǔ)言與C++的區(qū)別及聯(lián)系
C語(yǔ)言和C++之間的區(qū)別是什么
嵌入式應(yīng)掌握的幾種能力
C語(yǔ)言特性
C語(yǔ)言和單片機(jī)C語(yǔ)言有什么差異
C語(yǔ)言的printf基本用法介紹
關(guān)于SFP連接器你必須了解的那些知識(shí)
C語(yǔ)言精彩編程百例-364頁(yè)
主流的 MCU 開(kāi)發(fā)語(yǔ)言為什么是 C 而不是 C++?
關(guān)于C語(yǔ)言的那些小知識(shí)
評(píng)論