上節(jié)我們說過棉姐,程序本質是讓人閱讀的届案,順便用來執(zhí)行使用的庵楷。但你不得不承認,你的老板只讓它來使用楣颠,不然他花錢雇你干毛尽纽。那程序如何使用呢?
做一個計算器
我們打開電腦球碉,進入眼瞼的瀏覽器蜓斧、QQ、微信睁冬,或是曾用來下片的某播等等,都是程序編寫的看疙,手機上也是豆拨,抖音,吃雞等等APP能庆,都是編程語言寫的施禾。
它可能是C,可能是C++搁胆、Java弥搞、Pythen等等,但都是程序渠旁。
這里說個題外話攀例,很多人說某語言是世界上最好的編程語言,我從來不去爭顾腊,因為沒有C粤铭,你連編譯器都沒。
說回程序本身杂靶,我們拿一個比較簡單的程序來說梆惯,電腦上的計算器酱鸭,如果讓你寫一個計算器怎么辦?
我們簡單分析一下垛吗,首先你要設計一個UI界面凹髓,例如計算器的大小,長寬怯屉,然后是什么蔚舀,顯示數(shù)字的區(qū)域,還有0-9和運算符按鍵蚀之。
如果你要做得精致一點蝗敢,我們要做個菜單欄,比如選擇什么類型的計算器足删,程序員寿谴,科學型等等,大致設想一下失受。
UI設計好了之后呢讶泰,我們要賦予每個按鍵的作用,比如按下這個按鍵顯示“5”拂到,那個按鍵表示“+”號痪署,然后就是輸入捕獲了。
什么意思呢兄旬?
就是用戶用鼠標點一下“3”鍵狼犯,表示輸入,我們要記錄這個數(shù)字“3”领铐,就是捕獲悯森,因為不記錄下來,到時候點“=”就沒法算啊绪撵。
那怎么記錄呢瓢姻?
這樣想,用戶點一個數(shù)字按鍵音诈,你并不知道他會點哪個數(shù)字幻碱。就像我要揍你,你不知道我是踢你屁股還是掐你大腿细溅,但我一動手褥傍,你肯定有一個地方疼。
因為神經(jīng)細胞經(jīng)過神經(jīng)元谒兄,到達神經(jīng)中樞再傳給你的大腦摔桦,告訴大腦哪里疼,有多疼。
設計計算器也一樣邻耕,我不管用戶點哪個數(shù)字鸥咖,我都用一個像神經(jīng)細胞一樣的東西把用戶鼠標點的數(shù)字丟給它,讓它去判斷你鼠標點的啥兄世,簡單來說啼辣,就是用特定的東西(神經(jīng)細胞)去表示一個不確定會變動的東西(揍得你腫的地方),這個東西在C語言上就叫變量御滩。
變量
變量鸥拧,顧名思義,在程序的運行過程中可以發(fā)生改變的量削解。
那我們程序中怎么寫呢富弦?
還拿我揍你舉例,疼的地方傳給神經(jīng)元氛驮,傳給腕柜,就是神經(jīng)元<-疼的地方,這個箭頭表示“傳給”不好看矫废,我們簡化一點盏缤,神經(jīng)元 = 疼的地方,這樣好多了蓖扑,于是C語言中的傳給就是“=”唉铜,傳給這個詞太LOW了,就叫賦值吧律杠,所以C語言中“=”叫賦值號潭流。
賦值
那這不是把我們的等于號給霸占了嗎?這不行啊柜去,怎么辦呢幻枉?“==”就叫等于號吧,所以诡蜓,在C語言中一個“=”表示賦值,兩個“=”才表示等于胰挑。
C語言沒有中文蔓罚,你總不能寫神經(jīng)元 = 3吧,這就要用到我上一節(jié)說的表示符了瞻颂,比如a = 3;這個a就是變量豺谈,假設3是鼠標點的數(shù)字。
如果鼠標點4贡这,就是a = 4;這句話表示把4賦值給a茬末,而不是a等于4;
如果寫成4 = a;就不對了,這句話意思是把a賦值給4,這讀不通啊丽惭,4就是4击奶,不能變成a。前面a = 4;是因為a是變量责掏。
所以C規(guī)定柜砾,為了統(tǒng)一大家的習慣,都是變量在左换衬,要賦的值在右痰驱。而且我打你左手,你疼只能是左手疼瞳浦,所以C語言賦值時左邊只能是一個變量担映,右邊就沒有限制,比如a = 3 + 5; 叫潦、a = 4 + b;都可以蝇完。
這樣就可以了嗎?
也不行诅挑,為啥四敞,雖然我們用像神經(jīng)元一樣的變量表示鼠標點的值,但你總要告訴大腦是哪里傳達的神經(jīng)元吧拔妥,總不能我掰你手腕忿危,你捂著菊花吧。變量也是一樣没龙,我們要告訴編譯器铺厨,這是什么變量,這就是我們要講的另一個概念——數(shù)據(jù)類型硬纤。
數(shù)據(jù)類型
數(shù)據(jù)類型的意義就是你要告訴編譯器解滓,這個變量是什么變量,就像神經(jīng)元筝家,你要告訴大腦洼裤,是哪里的神經(jīng)元告訴你疼。
神經(jīng)元是復雜多樣的溪王,數(shù)據(jù)類型也一樣腮鞍,先給大家看個大概:
有沒有感覺一絲復雜,別怕莹菱,都是紙老虎(主要是你怕也沒用)移国。
有變量,那有沒有不變量呢道伟?
常量
有迹缀,但不叫不變量,太俗,C語言叫常量祝懂,就是用來給變量賦值的票摇。
什么叫常量?
就是被子太潮濕了嫂易,我經(jīng)常放太陽底下晾一晾兄朋,叫常晾。
非也怜械,常量指的是在程序的運行中不可以改變的量颅和,就是我們說的2、4.456缕允、π峡扩、-7等等不變的數(shù),具體來看障本,分為整型常量教届、浮點型常量字符常量、字符串常量和符號常量驾霜。怎么區(qū)分呢案训,下一節(jié)繼續(xù)。
總結
本節(jié)通過做一個計算器向大家介紹了為什么要有變量粪糙、數(shù)據(jù)類型和常量强霎,以及三者的基本概念,下節(jié)將具體介紹這三個概念蓉冈。
有了上面這三個概念城舞,我們就可以具體定義出一個變量了,比如:int a = 3;
上節(jié)作業(yè)講解
下面列舉的標識符中寞酿,那些是有效的家夺,那些是無效的,那些是比較好的標識符伐弹?
Char拉馋、¥god、MoveStutas惨好、87sd椅邓、fs、h昧狮、hello_flag、_suc板壮、int逗鸣、voe
根據(jù)上節(jié)所講的知識,標識符必須以英文字母或下劃線開頭,且不能是保留字撒璧,即關鍵字透葛,那這樣我們可以得出有效的標識符為Char(C語言區(qū)分大小寫,不是關鍵字)卿樱、MoveStutas僚害、fs、h繁调、hello_flag萨蚕、_suc、voe蹄胰,無效的有¥god岳遥、87sd、int(關鍵字)裕寨。
哪些是比較好的標識符呢浩蓉?
我們知道,標識符最好要告訴人們這個標識符是干嘛用的宾袜,要有具體的意思捻艳,不管是自己復盤還是交接他人時,能更好追蹤代碼庆猫,上面的MoveStutas和hello_flag就有具體含義认轨,我們來看Char,盡管他也有具體含義阅悍,但和關鍵字char只是首字母大小寫的區(qū)別好渠,你使用的話可能會讓人容易誤解,也就算不得好標識符了节视。
本節(jié)作業(yè)
下面哪種賦值方式符合C語言標準(假設所有變量均已定義)拳锚?
A = b; 4.5 = xs; c = 5 + 8; sd = c+7; d = 79.3 + d; a+b = 89; a == 23; i++; ++i;
溫馨提示:第一節(jié)有一個很奇怪的鏈接,大家記得保存哦~