☀️光天化日学C语言☀️(03)- 变量 | 万物皆变化,唯有初心不变
C語言免費(fèi)動(dòng)漫教程,和我一起打卡! 🌞《光天化日學(xué)C語言》🌞
LeetCode 太難?先看簡(jiǎn)單題! 🧡《C語言入門100例》🧡
數(shù)據(jù)結(jié)構(gòu)難?不存在的! 🌳《數(shù)據(jù)結(jié)構(gòu)入門》🌳
LeetCode 太簡(jiǎn)單?算法學(xué)起來! 🌌《夜深人靜寫算法》🌌
文章目錄
- 一、前言
- 二、人物簡(jiǎn)介
- 三、變量
- 1、變量的定義
- 2、變量的賦值
- 3、變量的初始化
- 4、變量的由來
- 5、多變量的定義
- 6、變量間的賦值
- 四、數(shù)據(jù)類型
- 1、內(nèi)置數(shù)據(jù)類型
- 2、數(shù)據(jù)的大小
- 3、整數(shù)的表示范圍
- 五、變量名
- 1、標(biāo)識(shí)符
- 2、關(guān)鍵字
- 3、命名規(guī)則
- 課后習(xí)題
一、前言
??本文作者是從 2007 年開始學(xué) C語言 的,不久又接觸了C++,基本就是 C/C++ 技術(shù)棧寫了 14 年的樣子,不算精通,但也算差強(qiáng)人意。著有《夜深人靜寫算法》系列,且承諾會(huì)持續(xù)更新,直到所有算法都學(xué)完。主要專攻 高中 OI 、大學(xué) ACM、 職場(chǎng) LeetCode 的全領(lǐng)域算法。由于文章中采用 C/C++ 的語法,于是就有不少讀者朋友反饋語言層面就被勸退了,更何況是算法。
??于是,2021 年 06 月 12 日,《光天化日學(xué)C語言》 應(yīng)運(yùn)而生。并且作者在此承諾,這個(gè)系列全部文章均免費(fèi)且開源,主要服務(wù)于高中生、大學(xué)生以及職場(chǎng)上想入坑C語言的志同道合之人,希望能給祖國(guó)引入更多編程方面的人才,并且讓自己的青春不留遺憾!
??本章的內(nèi)容主要將介紹變量的定義、賦值、初始化以及一些常用的內(nèi)置數(shù)據(jù)類型。
二、人物簡(jiǎn)介
- 第一位登場(chǎng)的就是今后會(huì)一直教我們C語言的老師 —— 光天。
- 第二位登場(chǎng)的則是今后會(huì)和大家一起學(xué)習(xí)C語言的沒什么資質(zhì)的小白程序猿 —— 化日。
三、變量
1、變量的定義
對(duì)于一個(gè)變量而言,有三部分組成:
??1)變量類型;
??2)變量名;
??3)變量地址;
- 在C語言中,我們可以通過如下的方式定義一個(gè)變量:
1)變量類型
- int表示變量類型,是英文單詞 Integer 的縮寫,意思是整數(shù)。
2)變量名
- Iloveyou表示變量名,也可以叫其它名字,例如:WhereIsHeroFrom、ILoveYou1314等等。
- 這個(gè)語句的含義是:在內(nèi)存中找一塊區(qū)域,命名為Iloveyou,用它來存放整數(shù)。
- 需要注意的是,最后有一個(gè)分號(hào),int Iloveyou表達(dá)了一個(gè)語句,要用分號(hào)來結(jié)束。
3)變量地址
2、變量的賦值
- C語言中可以用以下語句把 520 520 520 這個(gè)整數(shù)存儲(chǔ)到Iloveyou這個(gè)變量里:
- =在數(shù)學(xué)中叫 “等于號(hào)”,例如 1 + 1 = 2,但在C語言中,這個(gè)過程叫做變量的賦值,簡(jiǎn)稱賦值。賦值是指把數(shù)據(jù)放到內(nèi)存的過程。
3、變量的初始化
- 把上面的兩個(gè)語句連起來,得到:
- 當(dāng)然,我們也可以寫成如下形式:
- 兩段代碼的執(zhí)行結(jié)果相同,都是把Iloveyou的值變成 520 520 520;
4、變量的由來
- 如果我們需要,可以隨時(shí)改變它的值,如下代碼所示:
- 代碼執(zhí)行完畢以后,它的值以最后一次賦值為準(zhǔn),正因?yàn)榭梢圆粩嘈薷?#xff0c;是可變的,所以才叫變量。
- 簡(jiǎn)單總結(jié)一下就是:數(shù)據(jù)是放在內(nèi)存中的,變量是給這塊內(nèi)存起的名字,有了變量就可以找到并使用這份數(shù)據(jù)。
5、多變量的定義
- 如果幾個(gè)變量的類型一致,我們可以寫在一行上進(jìn)行定義,如下:
- 這段代碼代表一次性定義了三個(gè)整型類型的變量,并且將z初始化為 5,等價(jià)于如下代碼:
6、變量間的賦值
- 變量不能賦值給數(shù)字,但是變量可以賦值給變量。
【例題1】給出如下代碼,求輸出結(jié)果是什么。
#include <stdio.h> int main() {int a = 1314, b = 520;b = a;a = b;printf("a=%d b=%d\n", a, b);return 0; }四、數(shù)據(jù)類型
- 接下來我們展開來講一下變量類型,更加確切的講,應(yīng)該叫數(shù)據(jù)類型,C語言中有如下一些系統(tǒng)內(nèi)置數(shù)據(jù)類型。
1、內(nèi)置數(shù)據(jù)類型
- 從上面這個(gè)表,我們可以看到,有表示字符的,有表示整數(shù)的,也有表示浮點(diǎn)數(shù)的。
- 先來簡(jiǎn)單看下每種內(nèi)置類型是如何進(jìn)行定義的:
2、數(shù)據(jù)的大小
- 字節(jié)是計(jì)算機(jī)中的一種基本單位,英文名為 Byte,計(jì)算機(jī)中所有的數(shù)據(jù)都是由字節(jié)組成的。
- 我們通常在計(jì)算機(jī)中看到的文件單位 B 、K、M 、G、T 和字節(jié)的關(guān)系如下:
- 一個(gè)字節(jié)在計(jì)算機(jī)里面是有 8 個(gè)位組成,一個(gè)位有 0 和 1 兩種狀態(tài),所以一個(gè)字節(jié)能表示的狀態(tài)數(shù)就是 2 8 = 256 2^8 = 256 28=256。如圖四-2-1,代表的是一個(gè)字節(jié)的狀態(tài),白色代表0,灰色代表1,它的二進(jìn)制表示就是 ( 00001101 ) 2 (00001101)_2 (00001101)2?。
圖四-2-1
3、整數(shù)的表示范圍
- 這樣一來,上面提到的幾種整數(shù)類型,能夠表示的整數(shù)就顯而易見了,假設(shè)字節(jié)數(shù)為 n n n,那么能夠表示的整數(shù)個(gè)數(shù)就是能夠表示的狀態(tài)個(gè)數(shù),即: 2 8 n 2^{8n} 28n 。
- 由于我們需要表示負(fù)數(shù) 和 零,實(shí)際的每種整數(shù)數(shù)據(jù)類型能夠表示的數(shù)字范圍如下表所示:
五、變量名
1、標(biāo)識(shí)符
- 定義變量時(shí),我們使用了諸如 love、Iloveyou這樣的名字,為了表達(dá)變量的作用,這就叫 標(biāo)識(shí)符,即 Identifier。
- 標(biāo)識(shí)符就是程序員自己起的名字,除了變量名,后面還會(huì)講到函數(shù)名、常量名、宏名、結(jié)構(gòu)體名等,它們都是標(biāo)識(shí)符。
2、關(guān)鍵字
- 關(guān)鍵字(Keywords)是由C語言規(guī)定的具有特定意義的字符串,通常也稱為保留字,例如 int、char、long、int、unsigned int等。
- 程序自己定義的標(biāo)識(shí)符不能與關(guān)鍵字相同,否則會(huì)出現(xiàn)錯(cuò)誤。
- 后續(xù)會(huì)對(duì)各個(gè)關(guān)鍵字進(jìn)行一一講解。
3、命名規(guī)則
- ( 1 ) (1) (1) 必須由字母、數(shù)字 或者下劃線構(gòu)成,如 _aa,a123,_都是合法的變量,?*、a a、#、都是非法的變量;
- ( 2 ) (2) (2) 不能以數(shù)字開頭,如123abc不是一個(gè)合法的變量名;
- ( 3 ) (3) (3) 大小寫敏感,即大小寫看成不同,即o和O不是同一個(gè)變量;
- ( 4 ) (4) (4) 不能將變量名和C語言的語法保留關(guān)鍵字同名;
- ( 5 ) (5) (5) C語言雖然不限制標(biāo)識(shí)符的長(zhǎng)度,但是它受到 編譯器 和 操作系統(tǒng) 的限制。例如在某個(gè)編譯器中規(guī)定標(biāo)識(shí)符前 256 位有效,當(dāng)兩個(gè)標(biāo)識(shí)符前 256 位相同時(shí),則被認(rèn)為是同一個(gè)標(biāo)識(shí)符。
- ( 6 ) (6) (6) 標(biāo)識(shí)符命名時(shí)還是最好遵循 min-length-max-infomation 的原則,即以最小的長(zhǎng)度表達(dá)最全的信息,不過這個(gè)是規(guī)范上的,語言層面是不會(huì)做過多的限制的。
【例題2】給出一段程序,請(qǐng)回答這段程序的運(yùn)行結(jié)果。
#include <stdio.h>int main() {int IloveYou = 0;ILoveYou = 1314;ILoveYou = ILoveYou;ILoveYou = 520;printf("%d\n", ILoveYou);return 0; }- 建議先看代碼,心里想著一個(gè)答案,然后再去 光天化日學(xué)C語言(01)- 第一個(gè)C語言程序 中提到的在線編譯環(huán)境中將代碼一行一行敲出來,看看和你自己想的結(jié)果是否一致。
- 通過這一章,我們學(xué)會(huì)了 變量的定義、賦值、初始化,以及變量名命名規(guī)則,常用的數(shù)據(jù)類型,希望對(duì)你有幫助哦 ~ 祝大家早日成為 C 語言大神!
課后習(xí)題
- 【第03題】給定 a 和 b ,交換它們的值并輸出 | 四種解法
📢博客主頁:https://blog.csdn.net/WhereIsHeroFrom
📢歡迎各位 👍點(diǎn)贊 ?收藏 📝評(píng)論,如有錯(cuò)誤請(qǐng)留言指正,非常感謝!
📢本文由 英雄哪里出來 原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處,首發(fā)于 🙉 CSDN 🙉
作者的專欄:
??👉C語言基礎(chǔ)專欄《光天化日學(xué)C語言》
??👉C語言基礎(chǔ)配套試題詳解《C試題100例》
??👉算法進(jìn)階專欄《夜深人靜寫算法》
總結(jié)
以上是生活随笔為你收集整理的☀️光天化日学C语言☀️(03)- 变量 | 万物皆变化,唯有初心不变的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 21 步 教你成为一名成功的 Web 开
- 下一篇: 总部在新加坡!招AIGC算法工程师、测试