//作用域和生命周期
//局部变量的作用域就是局部变量所在的局部范围
// 全局变量的作用域是整个工程,也就是说全局变量可以在同一个项目跨文件使用,但是要申明一下
//int g = 2022;
//int main()
//{
// printf("1:%d\n", g);
// printf("hello world\n");
// int a = 10;
// printf("a=%d\n", a);
// {
// int b = 100;
// printf("b=%d\n", b);
// printf("2:%d\n", g);
//
// }
// printf("3:%d", g);
// return 0;
//
//}
//a的作用域在括号里,此时会报错
//int main()
//{
// printf("a=%d\n", a);
// {
// int a = 0;
// }
// return 0;
//}
与上面的程序对比,表明不是a定义的先后导致报错,而是因为作用域的原因
//int main()
//{
// {
// int a = 10;
// }
// printf("a=%d\n", a);
// return 0;
//}
//int main()
//{
// {
// int a = 0;
// printf("a=%d\n", a);
//
// }
// return 0;
//}
//下面的程序报错说明在作用域中要先定义才能再进行其他指令
//int main()
//{
// {
// printf("a=%d\n", a);
// int a = 10;
// }
// return 0;
//}
未声明g_val,报错
//int main()
//{
// printf("%d", g_val);
// return 0;
//}
申明变量,编译成功
//extern int g_val;
//
//int main()
//{
// printf("%d\n", g_val);
// return 0;
//}
//生命周期
//变量的生命周期是变量的创建和销毁之间的时间段
//局部变量的生命周期是进入局部范围生命开始,出局部范围生命结束
//全局变量的生命周期就是程序的生命周期
//int main()
//{
// 3.14;
// 40;
// 'a';
// "abcd";
//
// int num = 10;
// num = 30;
// printf("num=%d\n", num);
//}
//int main()
//{
// 3.14;
// 40;
// 'a';
// "abcd";
// //const修饰后就不能改变,这样就会报错,此时num就是常变量具有常属性,即不能改变的属性
//
// /*const int num = 10;
// num = 30;
// printf("num=%d\n", num);*/
//
// //int arr[10] = { 0 };
// 因为方括号里要常量而n是变量所以报错
// //int n = 20;
// //int arr[n] = { 0 };
//
//
// 表明即使有const修饰但仍然是变量,会报错
// //const int n = 10;
// //int arr[n] = { 0 };
//
// return 0;
//}
//int main()
//{
// //MAX = 200;//标识符常量不能修改
// int n = MAX;
// printf("n=%d\n", n);
// return 0;
//}
//enum Sex
//{
// //枚举类型的变量的未来可能取值
// male,
// female,
// secret
//};
//int main()
//{
// enum Sex s = male;
// printf("%d\n", male);
// printf("%d\n", female);
// printf("%d\n", secret);
// return 0;
//
//}
//enum Sex
//{
// //枚举类型的变量的未来可能取值
// male,
// female,
// secret
//};
//
常量不能该,所以会报错
//int main()
//{
// male = 3;
// enum Sex s = male;
// printf("%d\n", male);
// printf("%d\n", female);
// printf("%d\n", secret);
// return 0;
//
//}
但可以附初值
//enum Sex
//{
// //枚举类型的变量的未来可能取值
// male=4,
// female,
// secret
//};
//int main()
//{
// enum Sex s = male;
// printf("%d\n", male);
// printf("%d\n", female);
// printf("%d\n", secret);
// return 0;
//
//}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律