#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define MAX 1000;
//作用域和生命周期
//局部变量的作用域就是局部变量所在的局部范围
// 全局变量的作用域是整个工程,也就是说全局变量可以在同一个项目跨文件使用,但是要申明一下
//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;
//
//}
初识变量常量,变量的作用域和生命周期
于 2022-03-31 17:56:54 首次发布