- 简介:
- 纠正:
- 变量和常量
- 变量
- 4.1定义变量
- 4.2变量的分类
- 4.3变量的使用
- *** 作:
- 打开everything
- 查找newc++file.cpp
- 用记事本打开
- 把#define _CRT_SECURE_NO_WARNINGS复制在里面
- 4.4变量的作用域和生命周期
- 作用域
- 生命周期
- 下载链接
我是一名初学者,我会以我的角度来展现学习编程的一个过程,每个阶段的对知识点的理解都将写在上面,如果后续对知识点的理解有所偏差,我将会在最上面备注所要纠正的地方,并在新发布的博客上面,提醒之前哪个博客的知识点需要纠正,每个阶段全部发完之后将会总结在一个博客上面。
(如果大佬看到我的知识点有错并评论,我将会关注大佬并纠正错误的知识点,欢迎各位批评指正)
纠正: 变量和常量生活中有一些是可变的量(比如你的年龄,身高,体重,对象)
还有一些不变的量(比如圆周率,性别,身份z号码)[哎,这里你说性别可变啊,我们只能笑一下,哈哈]
#include
int main()
{
int a=10;
printf("a=%d",a);
return 0;
}
运行的结果:
a=10【a就是一个变量(int定义一个变量a,向内存申请一个空间给a,并赋予a一个值),因为a是可变的,所以可以赋予a任意一个值】
下面再来多写几个变量来加深一下了解
#include
int main()
{
short age=20;//年龄
int high=180;//身高
float weight=88.5;//体重
return 0;
}
运行的结果:
(因为没有printf来输出,所以什么也没有)
可以看出来我们定义的变量age,high,weight分别都有自己的含义,这可以让我们在写代码时具有很好的可读性,当然变量是可以随便命名的,比如也可以把age改为a,无所谓,只是为了可读性。
变量分为局部变量和全局变量,下面我们来用代码来演示一下
#include
int global=2022;//全局变量
int main()
{
int local=2018;//局部变量
//下面的global和上面的global会不会冲突呢?
int global=2021;//局部变量
printf("global=%d",global);
return 0;
}
运行的结果:
global=2021(运行的结果为下面的global,所以当局部变量和全局变量同名时,局部变量优先使用,所以不会冲突)
在int main()
{
}外的global就是全局变量,整个项目都可以使用的变量,在{}里面的变量就是局部变量,只能在{}范围内使用,假如{}中还有一个{}可以类推全局变量和局部变量的关系,都是一样的
#include
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个 *** 作数:>");
//输入两个数
scanf("%d %d", &num1, &num2);
//求和
sum = num1 + num2;
//输出sum的值
printf("sum = %d\n", sum);
return 0;
}
//这里介绍一下输入语句
//scanf可以输入数值赋予后面&所带的的变量num1和num2
在你运行的时候会出现下面的情况:
不要害怕,出现的错误在错误列表上会显示出来(但不要太依赖这个,仅供参考,很多时候出错的莫名奇妙):
错误 C4996 ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
我们来慢慢解析一下,它说,这个scanf它不安全,让你使用它的替代品scanf_s,如果你执意要使用scanf,需要在前面加一个_CRT_SECURE_NO_WARNINGS
我们这里来说一下scanf_s,它是vs编译器自带的只能在这个编译器里使用,只有这个编译器认识它,所以我们应该使用的通用的scanf,但是使用scanf它会报错啊,来,我们往前面加一个#define _CRT_SECURE_NO_WARNINGS试一试
#define _CRT_SECURE_NO_WARNINGS
#include
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个 *** 作数:>");
//输入两个数
scanf("%d %d", &num1, &num2);
//求和
sum = num1 + num2;
//输出sum的值
printf("sum = %d\n", sum);
return 0;
}
运行结果:
输入两个数,中间用空格隔开
按enter即可输出两数之和
可以看出来,这串代码可以运行了,那么我们每次使用scanf就要每次都加一个#define _CRT_SECURE_NO_WARNINGS是不是太麻烦了,告诉你们一个办法:
在vs的安装路径下有一个文件newc++file.cpp,
在vs工程中创建新的.c或.cpp文件的时候,都是拷贝上面这个文件的,所以我们只需要把这个文件的开头加上#define _CRT_SECURE_NO_WARNINGS,之后所创建的.c或.cpp都会带有#define _CRT_SECURE_NO_WARNINGS
下载everything(下载链接在下面的百度云)
保存即可,之后我们创建的新项目里面都会包含这条代码,也就不需要一直输入#define _CRT_SECURE_NO_WARNINGS
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的
而限定这个名字的可用性的代码范围就是这个名字的作用域。
- 局部变量的作用域是变量所在的局部范围(就是局部变量所在的{})
- 全局变量的作用域是整个工程。
我们举一个全局变量作用于整个工程的例子:
文件test4.5(2),里面的int a=100就是一个全局变量
另一个项目test4.5里面
运行的时候出现了错误,原因是没有申明这个变量a是来自其他项目里面的
所以我们加了一个
extern int a;//去申明一下它来自外面
这时去运行一下,结果:
a=100,没有问题
生命周期就类似于作用域,类比过来就行,生命周期≈作用域
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
- 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
- 全局变量的生命周期是:整个程序的生命周期。
下载everything
链接:提取码为1111
今天就先讲变量了,明天再讲常量,喜欢的多多点赞,关注加收藏哦
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)