文前tip
上一篇博文中,预留了一个编程题目,在这里为大家解答。
//写一个代码 //完成两个整数的相加,并输出结果 #include<stdio.h> int main() { int a = 0; int b = 0; int s = 0; //输入两个值 scanf_s("%d %d", &a, &b);//scanf函数是输入函数 s = a + b; printf("%d\n", s);//printf函数是输出函数 return 0; }
在我的gitee账户中也有详细的关于C语言的代码。欢迎大家去关注我!
【gitee:https://gitee.com/TSQXG】
变量的作用域和生命周期
在上篇博文讲到变量分为局部变量和全局变量,在这里我们分别探讨它们的作用域和生命周期!
作用域
局部变量的作用域:
全局变量的作用域:
综上所述:
- 局部变量的作用域是变量所在的局部范围(注:所定义处先后的作用域范围内)
- 全局变量的作用域是整个工程
生命周期
综上所述:
- 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
- 全局变量的生命周期是:整个程序的生命周期。
常量
字面常量
形如20,19.8,7.34,'a'这样直接写出的值都是字面常量。
const修饰的常变量
上面说到a本质上还是变量,就像"美籍华人"还是华人一样,现在我们想去证明a本质是一个变量?
证明a本质是变量:
上面是没有被const修饰的a,那下面被const修饰了的a会编译正确吗?
很显然不会,所以a的本质还是变量,那有些人显示编译正确是为什么呢?
这种情况存在于.cpp下C++情况是适用的。那这里我们不再过多探讨。
#define定义的标识符常量
枚举常量
那么枚举常量的值可以改变吗?当然可以
字符串
上一篇博文我们提到有字符类型,那么有字符串类型吗?答案是没有
那我们怎样去表示字符串呢?字符串里又蕴含了什么呢?
"hello tangdi.\n"
这种由双引号引起来的一串字符称为字符串字面值,或者简称字符串
特别注意:字符串的结束标志是一个\0的转义字符。
在计算字符串的长度的时候\0是结束标志,不算作字符串内容。
接下来我们来------------证明\0的存在
------------------\0的重要性
那么我们手动加上\0可以吗?当然可以
----------------------\0不算作字符串的内容