当前位置:网站首页>C语言 3:常量和变量,顺序语句,选择语句,循环语句,作用域和生存期
C语言 3:常量和变量,顺序语句,选择语句,循环语句,作用域和生存期
2022-07-29 14:23:00 【何小柒(qi)~】
文章目录
1. 常量
1.1 常量定义
常量的值不可改变(只可读,不可写)。
1.2 常量分类
- 字面常量
- 用#define定义的宏常量
- 用const关键字修饰的变量,称为常变量
- 枚举常量
- 字面常量和字符串常量
1.3 常量示例
#include<stdio.h>
//宏常量
#define PI 3.14
//枚举变量
enum week {
Mon = 1, Tues = 2, Wed = 3, Thurs = 4, Fri = 5, Sat = 6, Sun = 7 };
int main()
{
const float r = 10.25f;//用const修饰的常变量
const int a = 10;//字面常量
enum week w = Mon;//枚举常量
}
'a';//单引号是字符的定界符
"a";//双引号是字符串的定界符
1.4 转义字符
2. 变量(全局变量和局部变量)
2.1 局部变量
局部变量(改变其生存期):凡是在函数之内定义的变量,称之为局部变量,作用域仅限于函数体内部(栈区)。
2.2 全局变量
全局变量(改变其可见性):凡是在函数之外定义的变量,称之为全局变量,作用域是整个程序,也就是所有的源文件,包括.c和.h文件(数据区)。
3. 顺序语句,选择语句,循环语句
- 顺序结构:按照语句出现的先后顺字依次执行;
- 选择结构:根据条件判断是否执行相关语句;
- 循序结构:当条件程成立时,重复执行某些语句。
3.1 选择语句
代码示例
#include<stdio.h>
int main()
{
int age = 0;
if (age >= 18)
{
printf("已成年");
}
else
{
printf("未成年");
}
}
图解
3.2 循环语句
代码示例
for循环
while循环
do while循环
图解
3.2.1 for循环
用break语句跳出循环,当且只能跳出本次内层循环。
3.2.2 while循环
先判断,后执行
#include<stdio.h>
int main()
{
int n = 0, sum = 0;
printf("Enter intergers: \n");
while (scanf_s("%d", &n), n != 0);
{
sum *= n;
}
printf("The sum is:%d \n", sum);
return 0;
}
3.2.3 do while循环
先执行,后判断
#include<stdio.h>
int main()
{
int n = 0, sum = 0;
do
{
scanf_s("%d", &n);
sum += 0;
} while (n != 0);
printf("%d", sum);
return 0;
}
4. 函数
函数和内存表示
5. 作用域和生存期
作用域(可见性)指标识符能够被使用的范围;只有在作用域内标识符才可以被使用。
此阶段针对编译和链接过程。
1)函数中定义的标识符,包括形参和函数体中定义的局部变量,作用域都在该函数内,也称作函数域。
2)文件作用域也称全局作用域。定义在所有函数之外的标识符,具有文件作用域,作用域为从定义处到整个源文件结束。文件中定义的全局变量和函数都具有文件作用域。
生存期也叫生命期(Life time)。此阶段针对的是程序的执行过程。
生命期指的是标识符从程序开始运行时被创建,具有存储空间,到程序运行结束时消亡,释放存储空间的时间段。
1)局部变量的生存期是:函数被调用,分配存储空间,到函数执行结束,存储空间释放。存储在.stack区
2)全局变量的生存期是:从程序行前开始,到执行后结束。存储在.data区
3)动态生命期是:标识符由特定的函数调用或运算来创建和释放,如调用malloc()为变量分配存储空间,变量的生命期开始,而调用free()释放空间或程序结束时,变量生命期结束。具有动态生命期的变量存储在堆区.heap区
边栏推荐
- Zhaoqi Technology creates a platform for overseas high-level talent introduction, corporate project docking, and event roadshows
- 工作效率-十五分钟让你快速学习Markdown语法到精通排版实践备忘
- 为什么字符串使用final关键字
- 题目 1125: C语言训练-委派任务*
- 第4章_2——视图的使用
- 什么是异构计算
- EA&UML日拱一卒-活动图::Feature和StuctualFeature
- 【左连接】坑点
- EA&UML日拱一卒-活动图::Variable Actions(续)
- 企业需要知道的5个 IAM 最佳实践
猜你喜欢
随机推荐
【微信小程序】全局配置
第4章_3——索引的使用
全面质量管理理论
【Postman】Download and installation (novice graphic tutorial)
【Try to Hack】IDS入侵检测系统
关于内部类
嵌入式开发经验分享,把学习当作一种兴趣
479-82(54、11)
480-82(59、151)
城市污水处理过程模型预测控制研究综述
StarRocks 2.3 新版本特性介绍
三 RedisTemplate 序列化机制配置实战
超好用的PC端录屏软件推荐
《外太空的莫扎特》
【pytorch】1.6 tensor 基本运算
Programmers are a group with a high incidence of occupational diseases. Don’t be naive to think that it’s just as simple as being bald.
面试官:大量请求 Redis 不存在的数据,从而影响数据库,该如何解决?
使用云服务器从0开始搭建云端Jupyter Lab|Notebook
WOLFLAB一方老师带你解读虚拟云网络《VMware NSX-T卷2》-1
C51 存储类型与存储模式