淺談C語言的變量和常量
生活中的有些值是不變的(比如:圓周率,性別,身份證號(hào)碼,血型等等)
有些值是可變的(比如:年齡,體重,薪資)。
不變的值C語言中用常量的概念來表示,變的值C語言中用變量來表示
//定義變量的方法: //類型 + 名字 int age = 150; float weight = 45.5f; char ch = 'w'
變量的分類
1.全局變量
2.局部變量(補(bǔ)充:只要放在{ }里的都是局部變量)
例如:
int a = 10;//全局變量 —— 定義在大括號(hào)外部
int b = 20;//全局變量
int main()
{
int a = 100;
printf("a = %d\n", a);//局部變量 —— 定義在大括號(hào)內(nèi)部
printf("b = %d\n", b);//局部變量
return 0;
}
以上代碼的輸出結(jié)果為:
a = 100
b = 20
那么為什么不會(huì)是a = 10 b = 20 呢?
這是因?yàn)?strong>全局變量與局部變量名字沖突的情況下,局部優(yōu)先!但在xdm寫代碼的時(shí)候不建議將局部變量與全局變量命名成一樣的
在代碼中這兩個(gè)變量該怎么使用呢?下面我來舉個(gè)栗子
int main()
{
int num1 = 0;//創(chuàng)建變量num1
int num2 = 0;
int sum = 0;
//輸入變量值
scanf("%d %d",&num1,&num2);//&取地址操作符
//相加
sum = num1 + num2;
//打印輸出
printf("sum = %d\n",sum);
return 0;
}
變量的作用域和生命周期
作用域
作用域(scope)是程序設(shè)計(jì)概念,通常來說,一段程序代碼中所用到的名字并不總是有效/可用的而限定這個(gè)名字的可用性的代碼范圍就是這個(gè)名字的作用域。
簡單來講:一個(gè)變量哪里可以使用,哪里就是他的作用域
1. 局部變量的作用域是變量所在的局部范圍,例如:
int main()
{
{
int a = 0;
printf("%d\n", a);
}
printf("%d\n", a);
return 0;
}

a的作用域就是上圖框選部分
2. 全局變量的作用域是整個(gè)工程(跨文件也可以使用),例如:
int a = 0;
void test()
{
printf("test::%d\n", a);
}
int main()
{
test();
printf("main::%d\n", a);
return 0;
}

生命周期
變量的生命周期指的是變量的創(chuàng)建到變量的銷毀之間的一個(gè)時(shí)間段
1. 局部變量的生命周期是:進(jìn)入作用域生命周期開始,出作用域生命周期結(jié)束。
2. 全局變量的生命周期是:整個(gè)程序的生命周期。
常量
C語言中的常量分為以下以下幾種:
字面常量(直接寫出來的字面值)
例如:
(1). 3.14——浮點(diǎn)型常量
(2). 20——整形常量
(3). ‘a’——字符常量
(4). “abcd”——字符串常量
2.const 修飾常變量
const是C語言里的一個(gè)關(guān)鍵字
作用:具有常屬性的意思,不能改變變量的值
例如:
int main()
{
int num = 10;
printf("%d\n", num);
num = 20;//修改
printf("%d\n", num);
return 0;
}

在這里的輸出結(jié)果為10和20,而下面
int main()
{
const int num = 10;
printf("%d\n", num);
return 0;
}
如果這樣寫則num的值不可改變

const 修飾的常變量
3.#define 定義的標(biāo)識(shí)符常量
#define定義的東西為常量
#define M 100
int main()
{
int a = M;
printf("%d\n", a);
return 0;
}
//輸出結(jié)果為100
4.枚舉常量
枚舉——一一列舉,例如:性別,三原色等
枚舉關(guān)鍵字:enum
enum Colour
{
RED,//0
GREEN,//1
BLUE//2
};
int main()
{
enum Colour s = RED;
printf("%d %d %d\n", RED, GREEN, BLUE);
return 0;
}
//輸出結(jié)果0 1 2
//枚舉常量默認(rèn)從0開始,依次向下遞增1
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C++實(shí)現(xiàn)一個(gè)簡單的線程池的示例代碼
本文主要介紹了C++實(shí)現(xiàn)一個(gè)簡單的線程池的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
C語言-I/O流設(shè)計(jì)實(shí)驗(yàn)
編程語言的I/O類庫中常常使用流這個(gè)抽象的概念,它代表任何有能力產(chǎn)生數(shù)據(jù)的數(shù)據(jù)源對(duì)象或時(shí)有能力接收數(shù)據(jù)的接收端對(duì)象,本文為大家介紹C語言中I/O系統(tǒng)基礎(chǔ)知識(shí)2021-07-07
C語言實(shí)現(xiàn)倉庫物資管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)倉庫物資管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12
C語言借助EasyX實(shí)現(xiàn)的生命游戲源碼
這篇文章主要介紹了C語言借助EasyX實(shí)現(xiàn)的生命游戲的方法,需要的朋友可以參考下2014-07-07
MFC串口通信發(fā)送16進(jìn)制數(shù)據(jù)的方法
這篇文章主要為大家詳細(xì)介紹了MFC串口通信發(fā)送16進(jìn)制數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01

