21天學習C語言-第三天

數據的存儲,變量和常量。
程序存在的意義就是數據處理,計算機一般須要將要處理的數據存儲起來。存儲方式有兩種,存儲在變量或者常量中。以前提過,變量的值是可變的,常量的值是不可變的。dom

計算機內存

計算機使用隨機訪問內存(random-access memory,RAM)來存儲處理過程當中的數據。RAM中的數據是不穩定的,若是須要,你能夠改變所存儲的信息。同時,RAM中的數據也不持久,一旦關機,數據就丟失了。學習


計算機內存通常以MB爲單位,1MB=1024KB, 1KB=1024B, B爲byte的縮寫。 byte是計算機數據存儲的基礎單元。spa


RAM是按照順序排列的,一個byte接着另外一個。每個byte都有一個惟一的地址來標識,咱們用這個地址來找內存中的某一個byte。這些地址按順序分配給RAM,從0開始,一直到系統的最大限制,目前還不須要手動操做內存,都是系統自動搞定的。code

變量(Variables)

變量是數據在內存中存儲位置的名稱,程序經過變量來找到數據的所在位置。blog

變量命名原則

  1. 變量名稱能夠包含字母,數字,下劃線
  2. 變量首位必須是字母,下劃線也能夠,可是不推薦,不能以數字開頭。
  3. C語言是大小寫敏感的,name和Name是兩個徹底不一樣的變量。
  4. 關鍵字不能做爲變量名。

變量命名要見名知意,能夠下劃線分隔單詞,也能夠用駝峯命名法,看我的喜愛。下劃線可讀性高一些,駝峯寫代碼的時候速度快一些。ip

數值類型變量

C爲變量提供了不一樣的數值類型,不一樣的類型在內存中有不一樣的存儲要求,在作運算時的效率也不同。選擇合適的類型,能有效提升程序的運算效率。具體有如下兩種數字類型:
整型(Integer)爲沒有小數部分的數字,又包括有符號(signed)無符號(unsigned)。有符號包括正數附屬和0,無符號則是非負數。
浮點型(Floating-point)爲有小數部分的數字。
下圖是變量的類型,關鍵字,長度及取值範圍(一直覺得char不是數值類型,這裏不太理解)。
clipboard.png內存

變量聲明

C語言中,變量在使用以前必須聲明,聲明變量是告訴編譯器變量的名字和類型,有的時候會直接初始化變量的值。若是使用未聲明的變量,編譯器會報錯。變量聲明格式以下:
typename variable_name;
typename是前面變量類型的關鍵字
variable_name是變量的名字
例如:ci

int age; //年齡,整型變量
float salary = 30000.00; //薪水,浮點型變量,初始化爲30000.00

typedef關鍵字

typedef用來給一個已存在的類型關鍵字從新命名,暫時感受不到有什麼用。不過在剛畢業的時候讀過一篇文章,如何寫一些誰都不能維護的代碼,裏邊常常用這個關鍵字。看下例子:編譯器

typedef int integer;
integer count;

這裏把int這個關鍵字重命名爲integer,而後用integer這個關鍵字聲明瞭變量count。it

變量初始化

前文提過,使用變量以前要先聲明,這樣編譯器才能不報錯。同時,使用變量以前也要初始化,不然,變量當前的值多是不肯定。如圖,每次輸出未賦值的變量,結果都是不同的:

clipboard.png
C中用=表示賦值操做,如:

int  count;
count = 18;

聲明整型變量count,以後給count賦值18.

常量(Constants)

常量和變量同樣,都是用來存儲數據的,不一樣的是,常量中存儲的數據在程序執行過程當中是不能改變的。常量分爲字面常量(Literal Constants)符號常量(Symbolic Constants)

字面常量

字面常量是在須要的地方直接寫在代碼裏的,沒有什麼特殊的深意。例如:

int count = 20;
float tax_rate = 0.28;

這裏的20和0.28都是字面常量,在須要的地方直接使用就能夠了。

符號常量

符號常量是把一個字符常量用一個名稱展示(不太好表達)出來,簡單來講調用的時候用名稱就好了。經典例子π:

float circumference = 3.14 * (2 * radius); 
float area = 3.14 * (radius)*(radius);

這裏咱們計算了圓的周長和麪積,同時都用到了3.14這個常量,若是咱們要繼續計算其餘用到π的面積,那麼就須要一直寫3.14這個常量了。這時候符號常量就有用了,咱們把3.14這個數字定義爲符號常量PI。以後的代碼就能夠簡化了:

float circumference = PI * (2 * radius); 
float area = PI * (radius)*(radius);

有人說這其實沒有區別呀,每一個地方寫PI和每一個地方寫3.14差異不大。差異並不在乎寫代碼時是否多按了幾個鍵,試想下,若是這時候要求結果精確一些,須要把3.14換成3.1415926的時候,麻煩的事就來了。若是定義了常量PI,那麼咱們直接在代碼裏把PI的值改成3.1415926,一鍵搞定了所有的3.14。

定義符號常量

常量名習慣上都要大寫,這樣容易和其餘變量區分開來。定義符號常量有兩種方式,#define和const:
#define定義常量格式以下,關鍵字+常量名+常量,不須要以分號結尾:

#define CONSTANT_NAME literal
#define PI 3.14

const定義常量格式,關鍵字+類型+常量名=常量;,分號結尾:

const type CONSTANT_NAME = literal;
const float PI = 3.14;

兩種定義常量的方式是有區別的,會在後續的學習中逐漸解釋。

第三天就明顯感受賦值了許多,洗洗睡了。
相關文章
相關標籤/搜索