05-C語(yǔ)言常量和變量-指趣學(xué)院

什么是數(shù)據(jù)漓藕?

  • 生活中無(wú)時(shí)無(wú)刻都在跟數(shù)據(jù)打交道

    • 例如:人的體重、身高内列、收入撵术、性別等數(shù)據(jù)等
  • 在我們使用計(jì)算機(jī)的過(guò)程中,也會(huì)接觸到各種各樣的數(shù)據(jù)

    • 例如: 文檔數(shù)據(jù)话瞧、圖片數(shù)據(jù)嫩与、視頻數(shù)據(jù)等

數(shù)據(jù)分類

  • 靜態(tài)的數(shù)據(jù)

    • 靜態(tài)數(shù)據(jù)是指一些永久性的數(shù)據(jù),一般存儲(chǔ)在硬盤中交排。硬盤的存儲(chǔ)空間一般都比較大划滋,現(xiàn)在普通計(jì)算機(jī)的硬盤都有500G左右,因此硬盤中可以存放一些比較大的文件
    • 存儲(chǔ)的時(shí)長(zhǎng):計(jì)算機(jī)關(guān)閉之后再開(kāi)啟埃篓,這些數(shù)據(jù)依舊還在处坪,只要你不主動(dòng)刪掉或者硬盤沒(méi)壞,這些數(shù)據(jù)永遠(yuǎn)都在
    • 哪些是靜態(tài)數(shù)據(jù):靜態(tài)數(shù)據(jù)一般是以文件的形式存儲(chǔ)在硬盤上架专,比如文檔同窘、照片、視頻等部脚。
  • 動(dòng)態(tài)的數(shù)據(jù)

    • 動(dòng)態(tài)數(shù)據(jù)指在程序運(yùn)行過(guò)程中想邦,動(dòng)態(tài)產(chǎn)生的臨時(shí)數(shù)據(jù),一般存儲(chǔ)在內(nèi)存中委刘。內(nèi)存的存儲(chǔ)空間一般都比較小丧没,現(xiàn)在普通計(jì)算機(jī)的內(nèi)存只有8G左右,因此要謹(jǐn)慎使用內(nèi)存锡移,不要占用太多的內(nèi)存空間
    • 存儲(chǔ)的時(shí)長(zhǎng):計(jì)算機(jī)關(guān)閉之后呕童,這些臨時(shí)數(shù)據(jù)就會(huì)被清除
    • 哪些是動(dòng)態(tài)數(shù)據(jù):當(dāng)運(yùn)行某個(gè)程序(軟件)時(shí),整個(gè)程序就會(huì)被加載到內(nèi)存中淆珊,在程序運(yùn)行過(guò)程中夺饲,會(huì)產(chǎn)生各種各樣的臨時(shí)數(shù)據(jù),這些臨時(shí)數(shù)據(jù)都是存儲(chǔ)在內(nèi)存中的。當(dāng)程序停止運(yùn)行或者計(jì)算機(jī)被強(qiáng)制關(guān)閉時(shí)往声,這個(gè)程序產(chǎn)生的所有臨時(shí)數(shù)據(jù)都會(huì)被清除茫蛹。
  • 既然硬盤的存儲(chǔ)空間這么大,為何不把所有的應(yīng)用程序加載到硬盤中去執(zhí)行呢烁挟?

    • 主要原因就是內(nèi)存的訪問(wèn)速度比硬盤快N倍

  • 靜態(tài)數(shù)據(jù)和動(dòng)態(tài)數(shù)據(jù)的相互轉(zhuǎn)換
    • 也就是從磁盤加載到內(nèi)存
  • 動(dòng)態(tài)數(shù)據(jù)和靜態(tài)數(shù)據(jù)的相互轉(zhuǎn)換
    • 也就是從內(nèi)存保存到磁盤
  • 數(shù)據(jù)的計(jì)量單位
    • 不管是靜態(tài)還是動(dòng)態(tài)數(shù)據(jù),都是0和1組成的
    • 數(shù)據(jù)越大骨坑,包含的0和1就越多
1 B(Byte字節(jié)) = 8 bit(位)
// 00000000 就是一個(gè)字節(jié)
// 111111111 也是一個(gè)字節(jié)
// 10101010 也是一個(gè)字節(jié)
// 任意8個(gè)0和1的組合都是一個(gè)字節(jié)
1 KB(KByte) = 1024 B
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB

C語(yǔ)言數(shù)據(jù)類型

  • 作為程序員, 我們最關(guān)心的是內(nèi)存中的動(dòng)態(tài)數(shù)據(jù),因?yàn)槲覀儗懙某绦蚓褪窃趦?nèi)存中運(yùn)行的
  • 程序在運(yùn)行過(guò)程中會(huì)產(chǎn)生各種各樣的臨時(shí)數(shù)據(jù),為了方便數(shù)據(jù)的運(yùn)算和操作, C語(yǔ)言對(duì)這些數(shù)據(jù)進(jìn)行了分類, 提供了豐富的數(shù)據(jù)類型
  • C語(yǔ)言中有4大類數(shù)據(jù)類型:基本類型撼嗓、構(gòu)造類型、指針類型欢唾、空類型

什么是常量?

  • "量"表示數(shù)據(jù)且警。常量,則表示一些固定的數(shù)據(jù)礁遣,也就是不能改變的數(shù)據(jù)
  • 就好比現(xiàn)實(shí)生活中生男生女一樣, 生下來(lái)是男孩永遠(yuǎn)都是男孩, 生下來(lái)是女孩就永遠(yuǎn)都是女孩, 所以性別就是現(xiàn)實(shí)生活中常量的一種體現(xiàn)
    • 不要和江哥吹牛X說(shuō)你是泰國(guó)來(lái)的, 如果你真的來(lái)自泰國(guó), 我只能說(shuō)你贏了

常量的類型

  • 整型常量

    • 十進(jìn)制整數(shù)斑芜。例如:666,-120, 0
    • 八進(jìn)制整數(shù),八進(jìn)制形式的常量都以0開(kāi)頭。例如:0123,也就是十進(jìn)制的83;-011,也就是十進(jìn) 制的-9
    • 十六進(jìn)制整數(shù),十六進(jìn)制的常量都是以0x開(kāi)頭祟霍。例如:0x123,也就是十進(jìn)制的291
    • 二進(jìn)制整數(shù),逢二進(jìn)一 0b開(kāi)頭杏头。例如: 0b0010,也就是十進(jìn)制的2
  • 實(shí)型常量

    • 小數(shù)形式
      • 單精度小數(shù):以字母f或字母F結(jié)尾。例如:0.0f沸呐、1.01f
      • 雙精度小數(shù):十進(jìn)制小數(shù)形式醇王。例如:3.14、 6.66
      • 默認(rèn)就是雙精度
      • 可以沒(méi)有整數(shù)位只有小數(shù)位崭添。例如: .3寓娩、 .6f
    • 指數(shù)形式
      • 以冪的形式表示, 以字母e或字母E后跟一個(gè)10為底的冪數(shù)
        • 上過(guò)初中的都應(yīng)該知道科學(xué)計(jì)數(shù)法吧,指數(shù)形式的常量就是科學(xué)計(jì)數(shù)法的另一種表 示,比如123000,用科學(xué)計(jì)數(shù)法表示為1.23×10的5次方
        • 用C語(yǔ)言表示就是1.23e5或1.23E5
        • 字母e或字母E后面的指數(shù)必須為整數(shù)
        • 字母e或字母E前后必須要有數(shù)字
        • 字母e或字母E前后不能有空格
  • 字符常量

    • 字符型常量都是用''(單引號(hào))括起來(lái)的。例如:'a'呼渣、'b'棘伴、'c'
    • 字符常量的單引號(hào)中只能有一個(gè)字符
    • 特殊情況: 如果是轉(zhuǎn)義字符,單引號(hào)中可以有兩個(gè)字符。例如:'\n'屁置、'\t'
  • 字符串常量

    • 字符型常量都是用""(雙引號(hào))括起來(lái)的焊夸。例如:"a"、"abc"缰犁、"lnj"
    • 系統(tǒng)會(huì)自動(dòng)在字符串常量的末尾加一個(gè)字符'\0'作為字符串結(jié)束標(biāo)志
  • 自定義常量

    • 后期講解內(nèi)容, 此處先不用了解
  • 常量類型練習(xí)

123 1.1F 1.1 .3 'a' "a" "李南江"

什么是變量?

  • "量"表示數(shù)據(jù)淳地。變量,則表示一些不固定的數(shù)據(jù)帅容,也就是可以改變的數(shù)據(jù)
  • 就好比現(xiàn)實(shí)生活中人的身高颇象、體重一樣, 隨著年齡的增長(zhǎng)會(huì)不斷發(fā)生改變, 所以身高、體重就是現(xiàn)實(shí)生活中變量的一種體現(xiàn)
  • 就好比現(xiàn)實(shí)生活中超市的儲(chǔ)物格一樣, 同一個(gè)格子在不同時(shí)期不同人使用,格子中存儲(chǔ)的物品是可以變化的并徘。張三使用這個(gè)格子的時(shí)候里面放的可能是尿不濕, 但是李四使用這個(gè)格子的時(shí)候里面放的可能是面包

如何定義變量

  • 格式1: 變量類型 變量名稱 ;
    • 為什么要定義變量?
      • 任何變量在使用之前遣钳,必須先進(jìn)行定義, 只有定義了變量才會(huì)分配存儲(chǔ)空間, 才有空間存儲(chǔ)數(shù)據(jù)
    • 為什么要限定類型?
      • 用來(lái)約束變量所存放數(shù)據(jù)的類型。一旦給變量指明了類型麦乞,那么這個(gè)變量就只能存儲(chǔ)這種類型的數(shù)據(jù)
      • 內(nèi)存空間極其有限,不同類型的變量占用不同大小的存儲(chǔ)空間
    • 為什么要指定變量名稱?
      • 存儲(chǔ)數(shù)據(jù)的空間對(duì)于我們沒(méi)有任何意義, 我們需要的是空間中存儲(chǔ)的值
      • 只有有了名稱, 我們才能獲取到空間中的值
int a;
float b;
char ch;
  • 格式2:變量類型 變量名稱,變量名稱;
    • 連續(xù)定義, 多個(gè)變量之間用逗號(hào)(,)號(hào)隔開(kāi)
int a,b,c;
  • 變量名的命名的規(guī)范
    • 變量名屬于標(biāo)識(shí)符,所以必須嚴(yán)格遵守標(biāo)識(shí)符的命名原則

如何使用變量蕴茴?

  • 可以利用=號(hào)往變量里面存儲(chǔ)數(shù)據(jù)
    • 在C語(yǔ)言中,利用=號(hào)往變量里面存儲(chǔ)數(shù)據(jù), 我們稱之為給變量賦值
int value;
value = 998; // 賦值
  • 注意:
    • 這里的=號(hào)劝评,并不是數(shù)學(xué)中的“相等”,而是C語(yǔ)言中的賦值運(yùn)算符倦淀,作用是將右邊的整型常量998賦值給左邊的整型變量value
    • 賦值的時(shí)候,= 號(hào)的左側(cè)必須是變量 (10=b,錯(cuò)誤)
    • 為了方便閱讀代碼, 習(xí)慣在 = 的兩側(cè) 各加上一個(gè) 空格

變量的初始化

  • C語(yǔ)言中, 變量的第一次賦值蒋畜,我們稱為“初始化”
  • 初始化的兩種形式
    • 先定義,后初始化
    • int value; value = 998; // 初始化
    • 定義時(shí)同時(shí)初始化
    • int a = 10; int b = 4, c = 2;
    • 其它表現(xiàn)形式(不推薦)
int a, b = 10; //部分初始化
int c, d, e;
c = d = e =0;
  • 不初始化里面存儲(chǔ)什么?
    • 隨機(jī)數(shù)
    • 上次程序分配的存儲(chǔ)空間,存數(shù)一些 內(nèi)容,“垃圾”
    • 系統(tǒng)正在用的一些數(shù)據(jù)

如何修改變量值?

  • 多次賦值即可
    • 每次賦值都會(huì)覆蓋原來(lái)的值
int i = 10;
i = 20; // 修改變量的值

變量之間的值傳遞

  • 可以將一個(gè)變量存儲(chǔ)的值賦值給另一個(gè)變量
 int a = 10;
 int b = a; // 相當(dāng)于把a(bǔ)中存儲(chǔ)的10拷貝了一份給b

如何查看變量的值?

  • 使用printf輸出一個(gè)或多個(gè)變量的值
int a = 10, c = 11;
printf("a=%d, c=%d", a, c);
  • 輸出其它類型變量的值
double height = 1.75;
char blood = 'A';
printf("height=%.2f, 血型是%c", height,  blood);

變量的作用域

  • C語(yǔ)言中所有變量都有自己的作用域
  • 變量定義的位置不同,其作用域也不同
  • 按照作用域的范圍可分為兩種, 即局部變量和全局變量

  • 局部變量
    • 局部變量也稱為內(nèi)部變量
    • 局部變量是在代碼塊內(nèi)定義的, 其作用域僅限于代碼塊內(nèi), 離開(kāi)該代碼塊后無(wú)法使用
int main(){
    int i = 998; // 作用域開(kāi)始
    return 0;// 作用域結(jié)束
}
int main(){
    {
        int i = 998; // 作用域開(kāi)始
    }// 作用域結(jié)束
    printf("i = %d\n", i); // 不能使用
    return 0;
}
int main(){
    {
        {
            int i = 998;// 作用域開(kāi)始
        }// 作用域結(jié)束
        printf("i = %d\n", i); // 不能使用
    }
    return 0;
}

  • 全局變量
    • 全局變量也稱為外部變量,它是在代碼塊外部定義的變量
int i = 666;
int main(){
    printf("i = %d\n", i); // 可以使用
    return 0;
}// 作用域結(jié)束
int call(){
    printf("i = %d\n", i); // 可以使用
    return 0;
}

  • 注意點(diǎn):
    • 同一作用域范圍內(nèi)不能有相同名稱的變量
int main(){
    int i = 998; // 作用域開(kāi)始
    int i = 666; // 報(bào)錯(cuò), 重復(fù)定義
    return 0;
}// 作用域結(jié)束
int i = 666; 
int i = 998; // 報(bào)錯(cuò), 重復(fù)定義
int main(){
    return 0;
}
    • 不同作用域范圍內(nèi)可以有相同名稱的變量
int i = 666; 
int main(){
    int i = 998; // 不會(huì)報(bào)錯(cuò)
    return 0;
}
int main(){
    int i = 998; // 不會(huì)報(bào)錯(cuò)
    return 0;
}
int call(){
    int i = 666;  // 不會(huì)報(bào)錯(cuò)
    return 0;
}

變量?jī)?nèi)存分析(簡(jiǎn)單版)

  • 字節(jié)和地址

    • 為了更好地理解變量在內(nèi)存中的存儲(chǔ)細(xì)節(jié),先來(lái)認(rèn)識(shí)一下內(nèi)存中的“字節(jié)”和“地址”
    • 每一個(gè)小格子代表一個(gè)字節(jié)
    • 每個(gè)字節(jié)都有自己的內(nèi)存地址
    • 內(nèi)存地址是連續(xù)的
  • 變量存儲(chǔ)占用的空間

    • 一個(gè)變量所占用的存儲(chǔ)空間撞叽,和定義變量時(shí)聲明的類型以及當(dāng)前編譯環(huán)境有關(guān)
類型 16位編譯器 32位編譯器 64位編譯器
char 1 1 1
int 2 4 4
float 4 4 4
double 8 8 8
short 2 2 2
long 4 4 8
long long 8 8 8
void* 2 4 8
  • 變量存儲(chǔ)的過(guò)程
    • 根據(jù)定義變量時(shí)聲明的類型和當(dāng)前編譯環(huán)境確定需要開(kāi)辟多大存儲(chǔ)空間
    • 在內(nèi)存中開(kāi)辟一塊存儲(chǔ)空間姻成,開(kāi)辟時(shí)從內(nèi)存地址大的開(kāi)始開(kāi)辟(內(nèi)存尋址從大到小)
    • 將數(shù)據(jù)保存到已經(jīng)開(kāi)辟好的對(duì)應(yīng)內(nèi)存空間中
    int main(){
      int number;
      int value;
      number = 22;
      value = 666;
    }
    
    #include <stdio.h>
    int main(){
        int number;
        int value;
        number = 22;
        value = 666;
        printf("&number = %p\n", &number); // 0060FEAC
        printf("&value = %p\n", &value);   // 0060FEA8
    }
    

先不要著急, 剛開(kāi)始接觸C語(yǔ)言, 我先了解這么多就夠了. 后面會(huì)再次更深入的講解存儲(chǔ)的各種細(xì)節(jié)


配套視頻地址:www.it666.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末愿棋,一起剝皮案震驚了整個(gè)濱河市科展,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌糠雨,老刑警劉巖才睹,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異甘邀,居然都是意外死亡琅攘,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門鹃答,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)乎澄,“玉大人,你說(shuō)我怎么就攤上這事测摔≈眉茫” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵锋八,是天一觀的道長(zhǎng)浙于。 經(jīng)常有香客問(wèn)我,道長(zhǎng)挟纱,這世上最難降的妖魔是什么羞酗? 我笑而不...
    開(kāi)封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮紊服,結(jié)果婚禮上檀轨,老公的妹妹穿的比我還像新娘。我一直安慰自己欺嗤,他們只是感情好参萄,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著煎饼,像睡著了一般讹挎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天筒溃,我揣著相機(jī)與錄音马篮,去河邊找鬼。 笑死怜奖,一個(gè)胖子當(dāng)著我的面吹牛浑测,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播歪玲,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼尽爆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了读慎?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤槐雾,失蹤者是張志新(化名)和其女友劉穎夭委,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體募强,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡株灸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了擎值。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慌烧。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖鸠儿,靈堂內(nèi)的尸體忽然破棺而出屹蚊,到底是詐尸還是另有隱情,我是刑警寧澤进每,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布汹粤,位于F島的核電站,受9級(jí)特大地震影響田晚,放射性物質(zhì)發(fā)生泄漏嘱兼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一贤徒、第九天 我趴在偏房一處隱蔽的房頂上張望芹壕。 院中可真熱鬧,春花似錦接奈、人聲如沸踢涌。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)斯嚎。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間堡僻,已是汗流浹背糠惫。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钉疫,地道東北人硼讽。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像牲阁,于是被迫代替她去往敵國(guó)和親固阁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容