例:
#include<stdio.h>
int num2=20; //全局变量-定义在代码块({})之外的变量
int main()
{
int num1=10; //局部变量-定义在代码块({})内部
return0;
}
注意:1.全局变量与局部变量的名字建议不要相同-容易产生误会,产生bug
2.当局部变量和全局变量的名字相同的时候,局部变量优先
下列代码在C语言中会显示错误,C++不会。
int main()
{
//计算2个数的和
int num1=0;
int num2=0;
//输入数据-使用输入函数scanf
scanf("%d%d",&num1,&num2); //取地址符号&
如果出错,认为scanf不安全则可能是vs中的SDL检查,此时右键单击工程文件——属性——c/c++——SDL检查选项——否 或者用scanf_c
因为scanf是C语言提供的,而scanf_s不是标准C语言提供的,是VS编译器提供的,所以最好不用这个,因为此时就不具备跨平台性、可移植性。
所以我们仍用scanf,但是在源文件第一行要加上#define _CRT_SECURE_NO_WARNINGS 1
意思是让警告全部 失效,define意思是重定义
VS显示不安全是因为,分配了5字节的空间但是用户输入了10字节,就会导致sccanf()读到10字节
int sum=0; //C语言语法规定,变量要定义在当前代码的最前面
sum=num1+num2;
printf("sum=%d\n",sum);
return 0;
}
全局加入#define _CRT_SECURE_NO_WARNINGS 1方法
开始菜单中找其图标右击——单击属性——看快捷方式的目标中文件位置——在计算机中找到该文件单击——找到并打开VC——找到并打开vcprojectitems工程文件——找到并打开newc++file.cpp——在记事本中打开并粘贴#define _CRT_SECURE_NO_WARNINGS 1或在Notepad++中打开并粘贴#define _CRT_SECURE_NO_WARNINGS 1——保存(Ctrl+s)如果出现失败则按确定重新启动这个文件——自动退出后再重新点进去保存就可以了
下列代码在C语言与C++中都正确
int main()
{
//计算2个数的和
int num1=0;
int num2=0;
int sum=0; //C语言语法规定,变量要定义在当前代码的最前面
//输入数据-使用输入函数scanf
scanf("%d%d",&num1,&num2); //取地址符号&
sum=num1+num2;
printf("sum=%d\n",sum);
return 0;
} 变量的作用域和生命周期
作用域
程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
局部变量的作用域是变量所在的局部范围。
全局变量的作用域是整个工程(但跨文件使用工程时要声明)。
第一个文件:
int main()
int a=2021;
第二个文件:
int main()
{
extern int a; //需要声明标志符,声明a是由extern外部符号来的
printf("a=%d\n",a);
return 0;
}
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段