c語言的常量在執行期間為固定值,在定義后無法被修改
常量可以是任何的數據基本類型,可以為整形,浮點常量,字符和字符串常量
1,使用const關鍵字
2, 使用宏定義
3,使用枚舉常量
枚舉:
1 #include<stdio.h> 2 int main(){ 3 enum sex{ 4 male, 5 female, 6 unknown, 7 }; 8 printf("%d\n%d\n%d\n", male, female, unknown); 9 return 0; 10 }
宏定義:
1 #define i 5
const關鍵字修飾的常量不可被再修改,例如:
1 const int i=6;
在vs同一個工程下建立兩個.c格式的文件:
在第一個.c文件下寫:
1 static int g_val = 100;
在第二個.c文件下寫上
1 #include <stdio.h> 2 #include<stdlib.h> 3 extern int g_val; 4 5 int main(){ 6 /*int g_val = 30;*/ 7 8 printf("%d\n", g_val); 9 system("pause"); 10 return 0; 11 }
運行結果如下:
當去掉第一個程序的static時候:
1 int g_val = 100;
再次運行第二個程序顯示編譯成功。
這是因為:
static作用於同一個工程中2.c文件內的int g_val;使之從全局變量變為了局部變量,從而在1.c文件中編譯器無法打印出g_val
另外在同一個工程中的不同的.c文件中如果需要引用另一個.c中的變量,需要使用extern在進入主要函數之前
c語言static的作用:
1,修飾局部變量,改變變量的生命周期,變成了整個程序;
2,修飾全局變量,改變變量的作用域,變成了當前文件;
3,修飾全局函數,改變函數的作用域,變成了當前文件
好處:
防止一個工程下成百上千個文件難免有對同一個變量的相同命名,只作用於當前文件,保證了程序的安全性。