当前位置:网站首页>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区
边栏推荐
- 题目 1125: C语言训练-委派任务*
- Topic 1125: - delegate * C language training
- 通过二维顺序表实现杨辉三角
- 兆骑科创海外高层次人才引进平台,企业项目对接,赛事活动路演
- 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.
- 4519. 正方形数组的数目
- <老式喜剧>
- 函数柯里化
- 进程间通信 --- system V三种通信方式(图文案例讲解)
- Work Efficiency - Fifteen minutes allows you to quickly learn Markdown syntax to proficient in typesetting practice notes
猜你喜欢

这个 MySQL bug,99% 的人会踩坑!

Guangzhou Emergency Management Bureau released the top ten safety risks of hazardous chemicals in summer

Work Efficiency - Fifteen minutes allows you to quickly learn Markdown syntax to proficient in typesetting practice notes

测试时间的评估:开发时间的1/3~1/2

嵌入式开发经验分享,把学习当作一种兴趣

Chinese Internet technology companies were besieged by wolves. Google finally suffered a severe setback and its profits fell sharply. It regretted promoting the development of Hongmeng...
建议尽快优化搜索体验

一篇适合新手的深度学习综述!

升级 MDK 5.37 后的问题处理: AC6编译选项, printf, 重启失效等

国产手机将用户变成它们的广告肉鸡,难怪消费者都买iPhone了
随机推荐
面对互联网的裁员潮,我们该何去何从?
2022年了!还在用定时器实现动画?赶紧试试requestAnimationFrame吧!
这 6 款在线 PDF 转换工具,得试
Guangzhou Emergency Management Bureau released the top ten safety risks of hazardous chemicals in summer
协同多智能体学习的价值分解网络的原理与代码复现
kubernetes中正strace etcd
A review of deep learning for beginners!
leetcode linked list topic
带你搞懂 Redis 中的两个策略
暴力递归到动态规划 02 (绝顶聪明的人的纸牌游戏)
The reason for Apple's official price reduction has been found, and it is also facing declining sales and even inventory problems
<老式喜剧>
RAMAN 中 OPTIMIZATION 优化选项的作用
上个厕所的功夫,就把定时任务的三种调度策略说得明明白白
Violence recursion to dynamic programming 02 (very clever game of CARDS)
【LeetCode】593. 有效的正方形
第4章_2——视图的使用
EA&UML日拱一卒-活动图::Variable Actions(续)
无线传感器网络定位综述
城市污水处理过程模型预测控制研究综述