大家好,我是想要慢慢变得优秀的向阳同学,很希望能和大家一起慢慢变得优秀,如果觉得我的博客写的还不错,可以关注我~~,一起努力进步!!!当然如果有问题想问博主或者如果博客内容有问题,欢迎大家私聊或者在下方提出问题,我会积极的回复哦~
今天我们要学习的变量,提到变量,我们非常想知道变量是怎么定义的呢?即定义方式
变量=数据类型+变量名
目录
首先我们先学习一下:
数据类型
这时候就肯定有人要问了:这些专有名词都是什么啊?不要着急,让我一一解释。
字符:可以简单认为是一些标点符号和字母以及0~9的简单数字
例如:a A 3 ! 等等
整型:可以简单认为是可正可负的整数
例如:15 2101 -50等等
浮点数:可以简单认为是可正可负的实数(带保留小数点的整数或小数)
例如:-50.00000 33.33333等等
这时候肯定又有人要问了:为什么分这么不同的类型呢?
因为每种类型大小不同!
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(char));
printf("%d\n", sizeof(short));
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(long));
printf("%d\n", sizeof(long long));
printf("%d\n", sizeof(float));
printf("%d\n", sizeof(double));
printf("%d\n", sizeof(long double));
return 0;
}
根据它们不同的大小,去适当的应用它们,不要出现大材小用的情况哦~
ps:c语言语法规定sizeof(long)>=sizeof(int),每个编译器可能会出现不同的情况,但只要符合c语言标准即可!~
有了前面的铺垫,我们接着学习正式内容:
变量与常量
常量与变量的区别:
变量:就是符合变量定义形式,且可以改变的量
例如:整型变量名a从10变为了20
字符变量名ch从a变为了b
常量:顾名思义就是不可以改变的量
当常量20赋给了常量10的时候报错,说明常量不可改变,不可赋被值
变量的使用:
变量定义后,即可初始化常量或者表达式(当然定义的时候也可以初始化)这里的初始化可以理解为第一次赋值。
int main()
{
int a = 10;//变量的定义同时+初始化
int b;//变量的定义
a = 10;//赋值常数也可以 a=b;赋值已经初始化的变量(不然会报错);
return 0;
}
变量的分类及其作用域和生命周期 :
-
局部变量
有多少人简单的认为局部变量就是在main函数内部的变量!
看代码回答问题:如果你认为局部变量就是main函数内部的变量,那么输出的结果是不是就是10?
#include<stdio.h>
int main()
{
{
int a = 10;
}
printf("%d", a);
return 0;
}
然而结果却是
如果这个问题曾经是你的思想误区,请点一个赞👍,如果还想继续看这种文章可以关注一下博主
局部变量:在它属于它的局部范围内
简单来说就是在{ }从大括号内定义的变量就属于局部变量,{ }属于它的局部范围,从 {出现开始生成并起作用,到 }出现结束并不再起作用
这也就是局部变量的作用域及其生命周期!
作用域:变量起作用的区间
生命周期:变量开始生成到最后结束的区间
ps:不要将作用域和生命周期认为是一个东西,因为有时候存在并不一定起作用,像const修饰的局部变量(以后会讲到)
-
全局变量
全局变量的位置可以简单认为在所有{ }以外定义的变量
全局变量的生命周期及其作用域:从程序的开始到程序的结束
-
特殊情况
局部优先法则:使用变量的时候,如果全局与局部同时定义相同名字的变量,则优先使用局部变量
#include<stdio.h>
int a = 20;
int main()
{
int a = 10;
printf("%d", a);
return 0;
}
结语
非常感谢大家很耐心地看到这里,能看到这里的读者,你在我心里永远的最棒的!~
“我一定要成为最伟大的国王!”
——国王排名-波吉
你就像是那个逆流而上孤勇追梦的波吉,希望我们都可以达到梦想的彼岸!