本文發(fā)布于微信公眾號:三玹
本來打算是要說一說變量和數(shù)據(jù)類型的內(nèi)容,但是整理一下,發(fā)現(xiàn)需要插隊先說一下程序結(jié)構(gòu)。另外,還發(fā)現(xiàn)數(shù)據(jù)類型要展開的內(nèi)容還是蠻多的。因此,數(shù)據(jù)類型的內(nèi)容就留待下一篇文章。
在上篇文章的最后,寫了一段最簡單的C語言程序代碼 - 打印HelloWorld。借用這段代碼,來說一下C語言中的程序結(jié)構(gòu)。#include<stdio.h>
int main(){
printf("Hello World");
return 0;
}
在這段代碼里,包含了以下幾個部分:
在C語言程序中,以#號開始的命令被稱之為預處理指令。其作用是,根據(jù)源代碼中的預處理部分進行處理,處理完畢后才開始正式編譯你的源代碼。這段代碼中的#include,是文件引入指令??梢砸胪獠繉懞玫脑创a文件,相當于就是將引入的源代碼文件復制到自己寫的源代碼文件中。這樣一來,就可以調(diào)用外部文件中的內(nèi)容。
代碼中就引用了一個C語言的標準庫 stdio.h,可以調(diào)用一些輸入和輸出的方法。例如 scanf、printf 等等。如果沒有引入這個文件,就需要自己去實現(xiàn)怎么將內(nèi)容輸入到電腦上,怎么將內(nèi)容輸出到電腦屏幕上。實現(xiàn)這一個過程,其實還是挺復雜的,既然別人已經(jīng)寫好了,那么又何必去大費周章地折騰呢?主函數(shù)相當于是C語言的大門,函數(shù)里面的程序就是C語言要運行的主體部分,遇到關(guān)鍵字return就結(jié)束程序。同時,每個C語言程序有且僅有一個大門,就像每戶人家只有一扇大門。一個有身份的人來拜訪,肯定是從大門迎接,也是從大門送客。而這個有身份的人,就是系統(tǒng)。int 是函數(shù)的類型,也就是函數(shù)最終要返回的數(shù)據(jù)是什么類型的。main 是函數(shù)的名字,() 里面是函數(shù)的參數(shù)內(nèi)容,{} 里面是函數(shù)的邏輯主體,也就是程序運行的主要內(nèi)容。這些部分,就留待后面函數(shù)部分再詳細展開。在這一段代碼中,一共被執(zhí)行了兩個程序。一個是調(diào)用了標準庫 stdio.h 中的 printf 方法,用來將 Hello World 打印在控制臺(電腦屏幕上)。另一個是 return 0。return 是C語言中的一個關(guān)鍵字,當函數(shù)碰到 return 的時候就表示已經(jīng)結(jié)束了,同時還要把 return 后面的內(nèi)容返回出去。這里返回一個0,表示程序終止的意思。變量的作用是用來存儲值,而值存儲的位置是在內(nèi)存中。可以理解為每創(chuàng)建一個變量就需要在內(nèi)存中開辟出一個空間,用來存儲值。因此,變量指向的是內(nèi)存中的存儲單元。如果沒有變量,那對于程序員無疑是一場災難。假設(shè)我現(xiàn)在有100個變量存放在內(nèi)存中,那么我需要記住100個編號(內(nèi)存中有很多的存儲單元,每個單元都對應(yīng)的編號,編號是用十六進制表示:61ff1c)。顯然,這是不可能的。像我這么懶的人,如果看到要記這么多的東西,那這輩子都不可能學編程的。
所以,變量很好地解決了這個問題。值存儲在哪個存儲單元,它的編號是什么,這就不是我需要考慮的,我只需要記住變量名就夠了。而且這個變量名我可以根據(jù)值的內(nèi)容來進行命名比如age、name等等,這不比16進制的編號好記?一個變量具備了:變量類型、變量名、變量值這三要素。把內(nèi)存比作一座準備出租的大樓,每個房子都是一個變量。房子的類型有單間、復式、三室一廳等等,這對應(yīng)變量的數(shù)據(jù)類型;房子的編號對應(yīng)了變量名;入住的租客對應(yīng)變量值。第一種,先聲明,再賦值。首先要把盒子建好,但是在一開始不知道要往盒子里面裝什么具體的東西,等到后面有用的時候裝進去。int main(){
int a;
a = 123;
}
第二種,聲明時同時賦值。手上有具體的東西,同樣第一時間是需要把盒子建好,然后同時把東西放進去。
int main(){
char c = 'a';
}
正所謂無規(guī)矩不成方圓,理論上你的變量你愛叫啥叫啥,但是也得在規(guī)矩范圍內(nèi)。就像你賺錢你愛怎么賺怎么賺,但就不能賺刑法這本書里面的錢,否則就得請你去吃公家飯了。1、變量名必須以字母(A-z)、下劃線(_)起頭。
3、變量名中只能包含字母、下劃線、數(shù)字等。其他花里胡哨的符號是不被允許的。4、變量名不能和關(guān)鍵字一樣,如return、continue、int等等。有效變量名:good、for_、_close、ac12_3f無效變量名:1abc、return、for、hey man同時C語言中是嚴格區(qū)分大小寫的,也就是 A 和 a 是兩個不同的變量名。
本篇文章到這里就結(jié)束了,希望能夠?qū)Υ蠹业膶W習理解產(chǎn)生幫助。下一篇內(nèi)容來聊一聊C語言當中的基本數(shù)據(jù)類型。