当前位置:网站首页>【C语言系列】— 把同学弄糊涂的 “常量” 与 “变量”
【C语言系列】— 把同学弄糊涂的 “常量” 与 “变量”
2022-07-29 05:09:00 【甘城なつき】
꧁ 各位大佬们好!很荣幸能够得到您的访问,让我们一起在编程道路上任重道远!꧂
* 博客专栏:【C生万物】*
本篇内容简介:详细介绍“常量”与“变量”!
了解作者:励志成为一名编程大牛的学子,目前正在升大二的编程小白。
励志术语:编程道路的乏味,让我们一起学习变得有趣!
正文开始
文章目录
前言
生活中的常量:我想在生活中有些值是不变的(比如:每个人的血型,身份证号码,数学上的圆周率等等)这些都是不可以改变的
变量:也有些值是可以改变的(比如:年龄,体重等等) 
而在C语言中,不变的值就用 常量 的概率来表示,变得值就用 变量 来表示。
变量
局部变量
局部变量的定义:就是在特定过程(比如代码块内)或者函数内部所局部定义的一个量!
首先我们来写一个代码认识一下局部变量的容貌真身——————>>>
#include<stdio.h>
void test()
{
int x = 0;//局部变量
int y = 0;//局部变量
}
int main()
{
int a = 10;//局部变量
int b = 20;//局部变量
test();
printf("%d\n", a);
return 0;
}像上面代码所描绘的,主函数内部,自定义的函数中,所定义的量都是局部变量!
全局变量
全局变量的定义:全局变量也称 外部变量 ,是在函数的外部定义的变量,也可以在程序的任何地方进行创建!
下面我们也通过一段小代码来认识一下它———————>>>
#include<stdio.h>
int global = 20;//全局变量
int main()
{
return 0;
}像这样既不在,主函数内部,也不在自定义的函数中的量就是局部变量啦!
局部变量与全局变量的优先性
我们来想一下,当一个程序中,定义了两个同名的局部变量与全局变量时,那么在使用的时候优先使用谁呢?谁会成为天选之子呢?
来看这段代码——————>>>
#include<stdio.h>
int global = 300;
int main()
{
int global = 200;
printf("global=%d\n", global);
return 0;
}大家来猜一下谁会得到打印输出的资格?----> 不废话直接实践出真知,打印一下就知道了

看看看,是局部变量呀!
总结:当局部变量与全局变量同名时候,局部变量优先使用

变量的作用域和生命周期
作用域
作用域的概念,就是,一段程序代码中所用到的名字并不总是有效/可用的 ,而限定这个名字的可用性的代码范围就是这个名字的作用域!(通俗的说就是你所写的这个东西的可用范围就是作用域)
1.局部变量的作用域是变量所在的局部范围
2.全局变量的作用域是你所创建的整个工程
生命周期
变量生命周期的概念:变量的生命周期是变量的创建到变量的销毁之间的一个时间段
我们拿一段代码来分析一下——————>>>

1.局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束
2.全局变量的生命周期:整个程序的生命周期
常量
C语言的常量分为4种,下面我来一 一 给大家介绍
*字面常量*
所谓字面常量就是像数字,字母这样的量
//字面常量的演示
3.14;//小数
1000;//整数
'w'//字符数这些都是字面常量!
*const修饰的常变量*
常变量?什么鬼呀,我常量与变量都没有搞懂呢,怎么又来个常变量! 哈哈,没事没事,常变量就是本身是一个常量,但又有着变量的性质就叫作常变量
看这段代码来验证一下——————>>>
#include<stdio.h>
int main()
{
float a = 3.14;
a = 5.20;
printf("%f\n", a);
return 0;
}像这样的量是可以被修改的;但加上const之后呢?

在这里我们可以看到下面的a想被修改,就报了警告,说明加上const 之后就是不能被修改的了!具有常量的性质。
什么是具有变量的性质呢?看这段代码——————>>>

*#define定义的标识符常量*
上手代码演示!
#include<stdio.h>
#define MAX 100 //宏定义一个MAX
int main()
{
int a = MAX;
printf("a=%d\n", a);
return 0;
}看打印出的a值:

就是宏所定义的值!
*枚举类型*
生活中我们很多东西都是可以 一 一 列举出来的,比如:颜色,性别等等,这时我们就需要定义容器把它们包含起来,就有了枚举变量---举个例子
#include<stdio.h>
enum colour
{
RED,
GREEN,
BLUE
};
int main()
{
printf("%d\n", RED);
printf("%d\n", GREEN);
printf("%d\n", BLUE);
return 0;
}打印结果可以看出,枚举类型的默认值是从0开始的,依次向下加1

结束语
OK!到这里我们常量与变量详解就结束了,你会 ‘废’ 了嘛!
边栏推荐
- D3d Shader Instruction
- 最新坦克大战2022-全程开发笔记-2
- 京东云分布式链路追踪在金融场景的最佳实践
- Best practices of JD cloud Distributed Link Tracking in financial scenarios
- C语言 一级指针
- Cmu15-213 malloc lab experiment record
- 容器安全开源检测工具--问脉 VeinMind(镜像后门、恶意样本、敏感信息、弱口令等)
- Live broadcast Preview: integration of JD cloud Devops and jfrog product library
- osg进阶-序
- C语言数组典型应用代码详细讲解—高手误入(逐步代码详解)
猜你喜欢

365天挑战LeetCode1000题——Day 041 二分查找完结纪念 + 第 N 个神奇数字 + 在线选举

如视技术副总裁杨永林:当传统产业遇到“数字空间”

串口通讯部分详解

GPIO的输入输出详解

The latest tank battle 2022 full development notes-1

365天挑战LeetCode1000题——Day 040 设计跳表 + 避免洪水泛滥 + 查找大小为 M 的最新分组 + 销售价值减少的颜色球

The road to success in R & D efficiency of 1000 person Internet companies

容器安全开源检测工具--问脉 VeinMind(镜像后门、恶意样本、敏感信息、弱口令等)

200 多家 ISV 入驻!阿里云计算巢发布一周年

英伟达周锡健:设计到数字营销的最后一公里
随机推荐
C language handwritten qq-ai version
ANSI C类型限定符
【赛事预告】云上开发,高效智能——第二届阿里云ECS CloudBuild开发者大赛即将启动
法线可视化
平行云CEO 李岩:CloudXR ,开启通往元宇宙的通道
[event preview] cloud development, efficient and intelligent - the second Alibaba cloud ECS cloudbuild developer competition is about to start
携手数字人、数字空间、XR平台,阿里云与伙伴共同建设“新视界”
Differences between texture2d and texture2dproj under webgl1.0
C 语言手写 QQ-AI 版
游戏行业弹性计算最佳实践
365 day challenge leetcode 1000 questions - day 037 elements and the maximum side length of squares less than or equal to the threshold + the number of subsequences that meet the conditions
如视技术副总裁杨永林:当传统产业遇到“数字空间”
研发效能|Kubernetes核心技术剖析和DevOps落地经验
Xiaobai high salary shortcut Qt development game Snake
三次握手四次挥手针对面试总结
【C语言系列】— 不创造第三个变量,实现两个数的交换
Vs code的安装步骤及环境配置
C语言 N皇后问题
JD cloud golden autumn cloud special offer is in progress! Code scanning participation activities
阿里云联合鼎捷软件发布云上数字工厂解决方案,实现云MES系统本地化部署