C语言基础知识(2)----------变量,常量-创新互联

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

成都创新互联-专业网站定制、快速模板网站建设、高性价比莱州网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式莱州网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖莱州地区。费用合理售后完善,十余年实体公司更值得信赖。

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

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开始。

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

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前名称:C语言基础知识(2)----------变量,常量-创新互联
标题路径:http://scyanting.com/article/pecej.html