一把梭系列 ~ C語言範例 (0005) [變數(Variable)+常數(Const) 分析說明]
一把梭系列 ~ C語言範例 (0005) [變數(Variable)+常數(Const) 分析說明]
資料來源: https://openhome.cc/Gossip/CGossip/Variable.html
★前言
★主題:
變數(Variable)提供具名稱的記憶體儲存空間,一個變數關聯一個資料型態、儲存的值與儲存空間的位址值。
變數資料型態決定了變數分配到的記憶體大小;變數儲存的值是指儲存於記憶體中的某個數值,你可以透過變數名稱取得這個數值,這個數值又稱為 rvalue 或 read value;而儲存空間的位址值則是指變數分配到的記憶體位置,變數本身又稱為 lvalue 或 location value。
在 C 中要使用變數,必須先宣告 『資料型態和變數名稱』,例如:
/*資料型態△變數名稱; △:英文空格 */ int age; // 宣告一個整數變數 double money; // 宣告一個倍精度浮點數變數
如上面所舉的例子,可使用 int、float、double、char 等關鍵字(Keyword)來宣告變數名稱並指定資料型態
變數在命名時有些規則:
01.不可以使用數字作為開頭
02.也不可以使用特殊字元,像是 *&^% 之類的字元
03.變數名稱不可以與 C 內定的關鍵字同名,例如 int、float、struct 等
在 C 中宣告一個變數,就會配置一塊記憶體空間給變數,空間長度依宣告時的資料型態而定,被配置的這塊空間中原先可能就有資料,也因此變數在宣告後的值是不可預期的
所以應該在在變數宣告後初始其值,可以使用指定運算子(Assignment operator)= 來指定變數的值,例如:
int ageOfStudent = 0; double scoreOfStudent = 0.0; char levelOfStudent = 'A';
有時候一但將數值指定給變數之後,我們就不希望可再重新指定給同一變數,這時可以在宣告變數時使用 const 關鍵字來限定讓她變成一個『常數』
此時若程式中有其他程式碼試圖重新設定變數,編譯器會先檢查出這個錯誤,例如:
const double PI = 3.14; PI = 3.14159;
這第一行程式碼中的 PI 變數已經使用了 const 來限定變成常數了,,所以第二行要再指定一次數值時會被編譯器指出錯誤,在 gcc 編譯器下,會出現這樣的錯誤訊息:
assignment of read-only variable `PI'
★code
#include <stdio.h> #include <stdlib.h> int main(void) { /*宣告變數但未初始值*/ int ageOfStudent; double scoreOfStudent; char levelOfStudent; printf("\n年級\t得分\t\t等級\n"); printf("%d\t%f\t\t%d\n", ageOfStudent, scoreOfStudent, levelOfStudent); /*宣告變數後設定對應值*/ ageOfStudent = 5; scoreOfStudent = 80.0; levelOfStudent = 'B'; printf("\n年級\t得分\t\t等級\n"); printf("%d\t%.2f\t\t%c\n", ageOfStudent, scoreOfStudent, levelOfStudent);//在 printf 中,針對浮點數的部份,使用格式指定字 %f,其中再加上 .2,表示顯示浮點數時只顯示至小數後第二位 return 0; }
★結果:
★延伸說明/重點回顧:
01.C語言的變數在使用前一定要先宣告
02.先告變數後記得要對變數進行初始化,否則會有不可預期的現象發生
03.當有一個『固定的數值』要賦予他有意義的名稱時,可以使用常數的命名方法,例如:數學中的圓周率『 const double PI = 3.14; 』
3 thoughts on “一把梭系列 ~ C語言範例 (0005) [變數(Variable)+常數(Const) 分析說明]”
C/C++ 變數 常數 定義
C/C++
變數(Variable)/ 常數(Const)
宣告/定義
資料型態△變數名稱;
const △資料型態△變數名稱;
△ : 英文空格
YOUTUBE URL: https://youtu.be/GoTxgR3NR8w