C語言變量 | 你的私房錢到底有多少

林粒粒呀
6 位粉絲
假如你家裏有三處藏私房錢的地方...
用變量記住重要數據值!
哈嘍呀!👋
我是程序員林粒粒呀,致力於做銀河系最好懂的編程教程
歡迎瞭解更多我製作的課程 ⬇️
小鵝通店鋪:https://appylg7euhd8914.h5.xiaoeknow.com
B站課程主頁:https://space.bilibili.com/523995133/pugv
#clanguage #c語言 #程序 #程序員 #編程 #編程入門 #教學 #計算機 #代碼 #Python #ComputerScience #Programming
假如你家有三處藏私房錢的地方
沙發縫裏、電視機後和衣櫃頂
以人類有限的腦容量
你很難記住各個位置的具體資產
更何況它們還頻繁變動
那這時候就想
有沒有可能用代碼把這些數字存起來
這就跟可以通過銀行的賬戶號查到餘額一樣
賬戶號相當於一個標籤
通過這個標籤
我們就可以獲得它對應的值
程序裏的變量也是一樣的意義
是用來儲存或者引用數據的
那首先我們可以給變量起一個名字
比如SofaMoney對應沙發縫裏面錢的數量
在C語言裏還需要明確變量對應的值的類型
C語言的所有數據類型會在後面覆蓋
假設我們的私房錢都是整數
這個類型可以用int表示
代表整形類型
它是英文裏整數integer的縮寫
那像這樣寫出來後
就完成了聲明變量的操作
後面需要跟上分號表示語句結束
但我們不是爲了光有個變量
而是想借助它去儲存某個值
那假如沙發縫裏藏了375塊錢
我們可以這樣寫
變量名等號後面跟上要儲存的值
那現在SofaMoney裏儲存的值就是375了
把一個具體的值儲存到變量中的操作
被叫做復值操作
那同樣的
我們可以把電視機後面的私房錢也定義出來
除了用兩行代碼對新聲明的變量復值
我們其實也可以一行代碼搞定
那需要注意的是
對於任何新的變量
即使我們還不知道它當前的值是多少
也最好給它一個初始值
而不是先定義後就不管了
比如我們當前還沒有數衣櫃頂上藏了多少錢時
可以先把變量初始化爲一個默認值
比如說0
這不好的原因是
當我們聲明一個int變量的時候
計算機底層會分配出一塊空間
來儲存這個值
當我們沒有對變量進行初始化的時候
計算機就沒有往裏面儲存新的值
那麼此時變量裏的值
有可能是之前內存位置的遺留值
那這個具體數字就不可預測了
所以爲了保持程序的穩定性和可預測性
即使當前我們還不知道某個變量對應的值
也最好把它初始化爲某個確切值
假如後續我們把藏在衣櫃頂上的錢數出來了
就可以進行復值操作了
還要留意的是
一旦變量已經定義出來後
後續復值與距離就不要再指定數據類型了
只有定義新變量的時候才需要
這是因爲編譯器會在首次定義時
根據數據類型給變量分配對應的內存空間
如果我們寫成這樣
程序會因爲重複定義而報錯
因爲這裏的closet money
前面已經被分配過空間了
那假設某一天
你們家準備換個電視機
你意識到電視機後面的私房錢要暴露了
於是你提前進行戰略轉移
把它們藏到了書架上
現在相當於電視機後面沒錢了
書架上多出了和之前電視機後面相同的錢
那我們可以定義出一個新變量
bookshelf money
要知道我們是可以用變量給變量復值的
那對於復值與距
會先對等號的右邊求值
那右邊當前的值是728
然後再看等號左邊
此時就相當於bookshelf money
復值爲了7828
那接下來
我們把tv money直接復值爲0即可
但注意啊
上面語句的順序可不能變
如果我們先讓tv money爲0
再用tv money對bookshelf money復值的話
那bookshelf money的值也變成0了
那有人可能想說
你說bookshelf money的值是728
它就是728嗎
那這怎麼驗證呢
如果我們能把變量值輸出到屏幕上
就可以進行驗證了
但需要注意的是
打印變量的值和打印字符串的值是不一樣的
我們要打印字符串時
可以直接用雙引號把文本內容進行包圍
但打印整形變量的話
不能直接用雙引號把變量名包圍
因爲這樣打印出來的就直接是變量名本身
而不是它所儲存的值了
要打印整形變量的值
我們在字符串裏用百分號d作爲佔位符
來表示實進制整數
然後在字符串後面
用一個英文逗號分隔
跟上整形變量的名字
這樣在運行
就可以看到在打印出的結果裏
原本百分號0的地方
被變量當前的值替代了
那我們可以在程序裏隨時插入打印語句
來查看變量當前的值
比如tvmoney在初始化和被複製爲0的前後
打印出的結果是不一樣的
現在是實踐時間
你可以先暫停一下自己測試看
打開VSCode
還是之前的文件夾
新建一個C文件
我這裏叫塔3variabledemo.c
同樣的還是先定義出我們的命函數
然後題目是要登記兩個人的成績
並且這個成績都是整數
所以我們先聲明兩個整形變量
來儲存他們各自的成績
比如就叫MikeScore和JohnScore吧
聲明好變量以後
再看回題目
我們需要先把Mike的成績複製爲89
以及John的成績複製爲98
同時這裏我們也要注意
聲明瞭變量後
複製語句如果又寫了int就會發現報錯
這就是我們上面說的
不能重複聲明同一個變量
去掉int
可以發現這個報錯消失了
那這裏可以先printf一下
看看登記錯誤時他們的成績值
那就先在頂部加上相應的
僅號include語句
我們才能使用這個printf函數
printf的字符串裏面放上成績的位置
我們可以先用百分號D佔位
字符號打完了以後
逗號
然後放對應的變量名
比如這個百分號D
是幫Mike的成績佔的位置
這裏面放的就是MikeScore
打印John的成績時
對應的變量名就是JohnScore
保存運行
可以看到他們當前的成績值
接下來把兩位的成績糾正過來
因爲John被登記的成績是Mike的
所以我們可以直接將John的成績複製給Mike
然後再去更正John的成績
這兩步的順序不能調換
如果說我們先更正John的成績
再去複製給Mike
那Mike的成績就是錯誤的
再printf一下
看一下成績糾正過來沒有
保存運行
可以看到他們的成績已經糾正過來了
那順便提一下
這裏的return0分號
其實也可以省略不寫
這是因爲在C語言中
當一個函數的返回值類型是int
並且在函數末尾沒有寫return語句時
編譯器會自動在函數末尾添加return0
所以當我們把最後的return語句刪掉
保存運行
你可以看到也不會有問題
這個結果還是一樣的
好了 又學一招
如果你需要以上代碼
可以在我的同名公衆號
林立婭回覆C代碼獲取原文件
我們下個視頻見
