一、变量分类: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://lswzjz.com/article/pecej.html