App下載

從零開始學(xué)習(xí)C語言丨程序結(jié)構(gòu)和變量

三玹 2022-10-26 17:17:40 瀏覽數(shù) (2030)
反饋
原文: https://mp.weixin.qq.com/s?__biz=Mzg3OTc3MjcyOQ==&mid=2247483739&idx=1&sn=d414ef86124dc976fbb67463e197a841&chksm=cf7e140df8099d1b0194f5b3036743f45f85ffa8e130d5c9adb20ed02973b259ce8144eaa5ab&scene=178&cur_album_id=2588823761982849025#rd

 本文發(fā)布于微信公眾號:三玹
本來打算是要說一說變量和數(shù)據(jù)類型的內(nèi)容,但是整理一下,發(fā)現(xiàn)需要插隊(duì)先說一下程序結(jié)構(gòu)。另外,還發(fā)現(xiàn)數(shù)據(jù)類型要展開的內(nèi)容還是蠻多的。因此,數(shù)據(jù)類型的內(nèi)容就留待下一篇文章。
程序結(jié)構(gòu)
在上篇文章的最后,寫了一段最簡單的C語言程序代碼 - 打印HelloWorld。借用這段代碼,來說一下C語言中的程序結(jié)構(gòu)。
#include<stdio.h>
int main(){
  printf("Hello World");
  return 0;
}

在這段代碼里,包含了以下幾個部分:

1、預(yù)處理指令
在C語言程序中,以#號開始的命令被稱之為預(yù)處理指令。其作用是,根據(jù)源代碼中的預(yù)處理部分進(jìn)行處理,處理完畢后才開始正式編譯你的源代碼。
這段代碼中的#include,是文件引入指令。可以引入外部寫好的源代碼文件,相當(dāng)于就是將引入的源代碼文件復(fù)制到自己寫的源代碼文件中。這樣一來,就可以調(diào)用外部文件中的內(nèi)容。
代碼中就引用了一個C語言的標(biāo)準(zhǔn)庫 stdio.h,可以調(diào)用一些輸入和輸出的方法。例如 scanf、printf 等等。如果沒有引入這個文件,就需要自己去實(shí)現(xiàn)怎么將內(nèi)容輸入到電腦上,怎么將內(nèi)容輸出到電腦屏幕上。實(shí)現(xiàn)這一個過程,其實(shí)還是挺復(fù)雜的,既然別人已經(jīng)寫好了,那么又何必去大費(fèi)周章地折騰呢?
2、主函數(shù)
主函數(shù)相當(dāng)于是C語言的大門,函數(shù)里面的程序就是C語言要運(yùn)行的主體部分,遇到關(guān)鍵字return就結(jié)束程序。同時,每個C語言程序有且僅有一個大門,就像每戶人家只有一扇大門。一個有身份的人來拜訪,肯定是從大門迎接,也是從大門送客。而這個有身份的人,就是系統(tǒng)。
int 是函數(shù)的類型,也就是函數(shù)最終要返回的數(shù)據(jù)是什么類型的。
main 是函數(shù)的名字,() 里面是函數(shù)的參數(shù)內(nèi)容,{} 里面是函數(shù)的邏輯主體,也就是程序運(yùn)行的主要內(nèi)容。這些部分,就留待后面函數(shù)部分再詳細(xì)展開。
3、執(zhí)行程序
在這一段代碼中,一共被執(zhí)行了兩個程序。一個是調(diào)用了標(biāo)準(zhǔn)庫 stdio.h 中的 printf 方法,用來將 Hello World 打印在控制臺(電腦屏幕上)。
另一個是 return 0。return 是C語言中的一個關(guān)鍵字,當(dāng)函數(shù)碰到 return 的時候就表示已經(jīng)結(jié)束了,同時還要把 return 后面的內(nèi)容返回出去。這里返回一個0,表示程序終止的意思。
變量
變量的作用是用來存儲值,而值存儲的位置是在內(nèi)存中。可以理解為每創(chuàng)建一個變量就需要在內(nèi)存中開辟出一個空間,用來存儲值。因此,變量指向的是內(nèi)存中的存儲單元。
如果沒有變量,那對于程序員無疑是一場災(zāi)難。假設(shè)我現(xiàn)在有100個變量存放在內(nèi)存中,那么我需要記住100個編號(內(nèi)存中有很多的存儲單元,每個單元都對應(yīng)的編號,編號是用十六進(jìn)制表示:61ff1c)。顯然,這是不可能的。
像我這么懶的人,如果看到要記這么多的東西,那這輩子都不可能學(xué)編程的。


所以,變量很好地解決了這個問題。值存儲在哪個存儲單元,它的編號是什么,這就不是我需要考慮的,我只需要記住變量名就夠了。而且這個變量名我可以根據(jù)值的內(nèi)容來進(jìn)行命名比如age、name等等,這不比16進(jìn)制的編號好記?
一個變量具備了:變量類型、變量名、變量值這三要素。
把內(nèi)存比作一座準(zhǔn)備出租的大樓,每個房子都是一個變量。房子的類型有單間、復(fù)式、三室一廳等等,這對應(yīng)變量的數(shù)據(jù)類型;房子的編號對應(yīng)了變量名;入住的租客對應(yīng)變量值。
聲明方式
聲明變量的方式一共有兩種方式。
第一種,先聲明,再賦值。首先要把盒子建好,但是在一開始不知道要往盒子里面裝什么具體的東西,等到后面有用的時候裝進(jìn)去。
int main(){
  int a;
  a = 123;
}

第二種,聲明時同時賦值。手上有具體的東西,同樣第一時間是需要把盒子建好,然后同時把東西放進(jìn)去。

int main(){
  char c = 'a';
}
命名規(guī)則
正所謂無規(guī)矩不成方圓,理論上你的變量你愛叫啥叫啥,但是也得在規(guī)矩范圍內(nèi)。就像你賺錢你愛怎么賺怎么賺,但就不能賺刑法這本書里面的錢,否則就得請你去吃公家飯了。
C語言中,起變量名的規(guī)則有下面幾條:
1、變量名必須以字母(A-z)、下劃線(_)起頭。
2、變量名不能以數(shù)字(0-9)起頭。
3、變量名中只能包含字母、下劃線、數(shù)字等。其他花里胡哨的符號是不被允許的。
4、變量名不能和關(guān)鍵字一樣,如return、continue、int等等。
5、變量名不允許用空格。
有效變量名:good、for_、_close、ac12_3f
無效變量名:1abc、return、for、hey man
同時C語言中是嚴(yán)格區(qū)分大小寫的,也就是 A 和 a 是兩個不同的變量名。
C語言關(guān)鍵字


本篇文章到這里就結(jié)束了,希望能夠?qū)Υ蠹业膶W(xué)習(xí)理解產(chǎn)生幫助。下一篇內(nèi)容來聊一聊C語言當(dāng)中的基本數(shù)據(jù)類型。





















C

0 人點(diǎn)贊