網(wǎng)站首頁 編程語言 正文
生活中的有些值是不變的(比如:圓周率,性別,身份證號碼,血型等等)
有些值是可變的(比如:年齡,體重,薪資)。
不變的值C語言中用常量的概念來表示,變的值C語言中用變量來表示
//定義變量的方法: //類型 + 名字 int age = 150; float weight = 45.5f; char ch = 'w'
變量的分類
1.全局變量
2.局部變量(補充:只要放在{ }里的都是局部變量)
例如:
int a = 10;//全局變量 —— 定義在大括號外部 int b = 20;//全局變量 int main() { int a = 100; printf("a = %d\n", a);//局部變量 —— 定義在大括號內(nèi)部 printf("b = %d\n", b);//局部變量 return 0; }
以上代碼的輸出結(jié)果為:
a = 100
b = 20
那么為什么不會是a = 10 b = 20 呢?
這是因為全局變量與局部變量名字沖突的情況下,局部優(yōu)先!但在xdm寫代碼的時候不建議將局部變量與全局變量命名成一樣的
在代碼中這兩個變量該怎么使用呢?下面我來舉個栗子
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è)計概念,通常來說,一段程序代碼中所用到的名字并不總是有效/可用的而限定這個名字的可用性的代碼范圍就是這個名字的作用域。
簡單來講:一個變量哪里可以使用,哪里就是他的作用域
1. 局部變量的作用域是變量所在的局部范圍,例如:
int main() { { int a = 0; printf("%d\n", a); } printf("%d\n", a); return 0; }
a的作用域就是上圖框選部分
2. 全局變量的作用域是整個工程(跨文件也可以使用),例如:
int a = 0; void test() { printf("test::%d\n", a); } int main() { test(); printf("main::%d\n", a); return 0; }
生命周期
變量的生命周期指的是變量的創(chuàng)建到變量的銷毀之間的一個時間段
1. 局部變量的生命周期是:進入作用域生命周期開始,出作用域生命周期結(jié)束。
2. 全局變量的生命周期是:整個程序的生命周期。
常量
C語言中的常量分為以下以下幾種:
字面常量(直接寫出來的字面值)
例如:
(1). 3.14——浮點型常量
(2). 20——整形常量
(3). ‘a(chǎn)’——字符常量
(4). “abcd”——字符串常量
2.const 修飾常變量
const是C語言里的一個關(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)識符常量
#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é)
原文鏈接:https://blog.csdn.net/youstory/article/details/122763667
相關(guān)推薦
- 2023-03-13 Go語言中GORM存取數(shù)組/自定義類型數(shù)據(jù)_Golang
- 2022-12-30 React錯誤邊界Error?Boundaries詳解_React
- 2022-02-22 el-step中多個步驟中的表單一起提交
- 2022-06-08 FreeRTOS實時操作系統(tǒng)Cortex-M內(nèi)核使用注意事項_操作系統(tǒng)
- 2022-11-21 go語言算法題解二叉樹的最小深度_Golang
- 2022-05-17 基于Python編寫簡易文字語音轉(zhuǎn)換器_python
- 2022-06-25 Qt一個進程運行另一個進程的實現(xiàn)方法_C 語言
- 2022-06-07 淺談Python中對象是如何被調(diào)用的_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支