C语言基础知识(2)----------变量,常量

一、变量分类:1.局部变量      2.全局变量

下面一段代码就可以让大家清楚知道全局和局部的分布位置

int num2 = 20;//全局变量
int main()
{
	int num1 = 10;//局部变量
	return 0;
}

全局变量------定义在{   }(代码块)之外的变量

局部变量-------定义在代码块{  }内部

那么当全局变量和局部变量相同时,然后打印这个变量名,会输出谁的值呢?

以代码说话:

int a = 20;
int main()
{
	int a = 10;
	printf("%d\n", a);
	return 0;
}

 可以清楚地看到在局部变量与全局变量名字相同时,打印时局部变量优先

第二部分:变量的作用域和生命周期

1.局部变量的作用域是变量所在的局部范围

2.全局变量的作用域时整个工程

int main()
{
	int num = 0;
	{
		printf("num = %d\n", num);  //可以打印
	}
	return 0;
}
int main()
{
	{
		int num = 0;
	}
	printf("num = %d\n", num);     //不可打印
	return 0;
}

从上面的代码可以看出,局部变量的作用域只有在自己的局部范围内才可以发挥作用,而全局变量是在任何地方发挥作用!!!

1.局部变量:进入作用域是生命周期的开始,出作用域生命周期结束

2.全局变量:整个程序的生命周期          与main函数的生命周期相同

二、常量

像1,2,3,4,,,,6,  -------   这些都是字面常量

1.现在给大家介绍一种特殊的常量-------常变量

int main()
{
	//const----常属性
	const int num = 4;//const修饰的常变量
	printf("%d\n", num);
	num = 8;
	printf("%d\n", num);
	return 0;
}

其中可以看到发现,当编译这个代码时,会发现错误,原因就是num本质是个变量,但是被const修饰,具有常量属性,所以num的值不可以改变。

那么我们还知道数组的初始化个数必须是个常量,比如:arr[n]-------其中的n一定要是个常量才可以,那么num在此时已有常量属性,那么arr[num]可以吗?结果是大错特错,虽然这时num已有常量属性,但它本质上还是个变量,所以不能用来初始化数组。

2.#define定义的标识常量

#define MAX 10
int main()
{
	int arr[MAX] = { 0 };
	return 0;
}

当我们编译上面这个代码时,会发现没有错误,因为我们用define定义了一个常量MAX,所以可以用来初始化数组。

3.枚举常量

这个可以简单的给大家介绍一下

"枚举常量"或称"枚举成员",是以标识符形式表示的整型量,表示枚举类型的取值。 枚举常量表列出枚举类型的所有取值,各枚举常量之间以","间隔,且必须各不相同。 取值类型与条件表达式相同。 枚举常量代表该枚举类型的变量可能取的值,编译系统为每个枚举常量指定一个整数值,默认状态下,这个整数就是所列举元素的序号,序号从0开始。

以上是对常量变量的基础讲解,大家有任何不明白的,都可以随时私信我,而我也会即时给出回复,如果大家对我的内容感兴趣,可以给我点一下小红心呦!!!感谢感谢!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值