初识变量常量,变量的作用域和生命周期

#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;
//
//}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值