初识C语言(一)
1.数据类型
char //字符数据类型
short //短整型
int //整型
long //长整型
long long //更长的整型
float //单精度浮点数
double //双精度浮点数
其中char是字符类型,int、long、longlong、short四种数据类型是整数类型,比如10、20、200…最后float、doubal两种数据类型为小数类型,比如0.5、2.3…
接下来研究每个数据类型的大小!如何测量数据类型大小?可在VS工具中写如下代码:
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));
【X64下如果这里程序出现警告,只需要将%d改为%lld】
其中运行结果如下:
其中数字1.2.4.4.8.4.8为各个数据类型的字节大小,说到字节,这里应该复习一下比特,字节等大小之间的转换。
计算机中常用的单位有bit、byte、KB、MB、GB、TB、PB…
1byte = 8bit
1KB = 1024byte
1MB = 1024KB
…**
注:sizeof(long)不一定是4个字节,这里只要sizeof(long)>= sizeof(int)即可!
这里也是为什么会出现这些数据类型的原因!
2.数据类型设定
C语言提供的类型是内置类型,C语言也可以自定义类型。比如下面价格或者体重的设定
int price = 55;
float weight = 55.5f; //f的意思是告诉编译器是double值
3.变量、常量
3.1 局部变量与全局变量
int b = 200;
int main()
{
int a = 100;
return 0;
}
由这个简单的函数可以看出b定义在这个main函数的外面,我们把这种称为全局变量,自然的,将a称之为局部变量。
void test()
{
int a = 100;
{
int main()
{
int a = 200;
}
a都为局部变量,不只是放在main函数里面的变量称为局部变量!
所以我们将定义在大括号外的变量称为全局变量,将大括号内的称为局部变量。
这里会产生一个问题,当全局变量与局部变量的名字冲突时,程序首先会读取全局变量还是局部变量?
通过运行下面代码:
int a = 1000;
int main()
{
int a = 100;
printf("a = %d\n",a);
return 0;
}
得出:
可以得出当全局变量与局部变量的名字冲突时,局部优先!
3.2 变量的使用
int num1 = 0;
int num2 = 0;
int sum;
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("sum = %d", sum);
变量的使用可以使用类型加上变量名即可,运行结果如下:
3.3 变量的作用域与生命周期
作用域,顾名思义,域代表范围,即这个名字的可用性的代码范围。一段程序代码中所用到的名字并不总是有效/可用的。
即一个变量哪里可以使用,哪里就是他的作用域!
1.局部变量的作用域是变量所在的局部范围。
2.全局变量的作用域是整个工程。
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
1.局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2.全局变量的生命周期是:整个程序的生命周期。