C 語言基礎之初識 C 語言常量
C語言中的常量分為以下幾種:
- 字面常量
- const修飾的常變量
- #define定義的標識符常量
- 枚舉常量
1、字面常量
即字面意思不能改變的量。如1就是1,你不能說讓1等於2;如人的血型有固定的幾種(A,B,O,AB);如人的性別也隻分為男性,女性,以及更深奧的一種形態。
在C語言中:1
,3.14
,‘a'
,“hello
”…這些都叫做常量。
2、const修飾的常變量
可以通過一段代碼來理解const修飾的常變量:
int num = 10; printf("%d\n", num); //num=10 num = 5; printf("%d\n", num); //num=5
上面這段代碼中 num
是一個變量,通過你給num賦新的值,num就不停的在改變。
但是當你在數據類型前面加上const
,num
就發生微妙的改變。(自己可以在編譯器上使用看看)
const int num = 10; printf("%d\n", num); //編譯產生報錯 num = 5; printf("%d\n", num);
當你編譯後,結果會產生報錯:
因為此時num
在const
修飾下已經變成瞭常變量,而變量是不可以被修改的。
但是num
此時不能完全叫做常量,它歸根結底還是變量。如它不能在數組定義的時候使用。
//通過定義一個數組看出問題 //int arr[10] = { 0 };------正常的定義數組 //int num = 10; //int arr[num] = { 0 };-----結果產生報錯 //const int num = 10; //int arr[num] = { 0 };----結果產生報錯
3、#define定義的標識符常量(也叫預處理)
這是C語言定義數組大小經常用到的方法,大傢可以自行使用感覺一下。
使用格式:#define
<標識符> <常量值/表達式>
#include <stdio.h> #define MAX 10 int main() { int arr[MAX] = { 0 }; //通過改變MAX的大小就可以改變數組大小 printf("%d",MAX); //MAX=10 return 0; }
下面有個思考題,大傢可以思考一下結果是什麼:
#include <stdio.h> #define MAX 5+5 int main() { printf("%d", 3 * MAX); return 0; }
此時輸出的結果是20,而並不是30。所以要明白#define MAX 5+5
,MAX
並不等於10。
既然可以把一個表達式賦給一個標識符,那我可以不可以把一些參數賦值給這個標識符呢?
大傢可以思考一下這段代碼:
#include <stdio.h> #define Add(a,b) a+b int main() { int sum = Add(3,2); printf("%d\n",sum); return 0; }
此時,先發生sum=a+b
,再發生sum=3+2
,故輸出5
我們這裡隻是講解最基礎的常量問題,故不多衍生宏定義,後面會專門講解宏定義相關的內容。
4、枚舉常量
如果大傢學過結構體,枚舉的定義與其比較相似。
enum的使用方法:
在定義enum的同時,聲明變量:
enum Day { Mon,Tue,Wed,Thus,Fri,Sat,Sun }Workday;
定義完enum之後再聲明變量:
enum Day { Mon,Tue,Wed,Thus,Fri,Sat,Sun }; enum Day Workday;
定義匿名的枚舉變量:(如果整個程序隻用一個枚舉,則enum後面不必加標識符,但是不能再定義枚舉結構)
enum { Mon,Tue,Wed,Thus,Fri,Sat,Sun }Workday;
通過一段碼來為大傢剖析枚舉結構的一些細節:
#include <stdio.h> enum Day { //enum--枚舉類型關鍵字 Day--枚舉類型標簽 enum Day--枚舉的類型 Mon=1, Tue, //{ }裡面的為枚舉值 Wed, Thus, Fri, Sat, Sun }Workday; //Workday--枚舉變量
這裡做一些說明:
- 如果Mon不做賦值,則默認為0,後面依次增加,如Tue=1,Wed=2…
- 如果Mon賦值為3,則後面也依次增加,如Tue=4,Wed=5…
- 如果是從中間賦值,如Thus=7,則Thus後面的依次增加,之前的從Mon開始則從0
- 開始增加
- 枚舉值是常量,不是變量。不能在程序中用賦值語句再對它賦值。
- 如:Tue=7,Sun=Wed。這些都是錯誤的。
- 隻能把枚舉值賦給枚舉變量,而不能將該枚舉值的數值賦給枚舉變量
如:Workday=Tue----正確
Workday=2----錯誤
關於枚舉的更多東西,後面再做分享。希望大傢喜歡。
到此這篇關於C 語言基礎之初識 C 語言常量的文章就介紹到這瞭,更多相關 C 語言常量內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!