3.数据类型-整型类型:
char 字符型数据类型
int 整型
short 短整型
long 长整型
long long 更长的整型
float 单精度浮点数
double 双精度浮点型
注:输出字符数据类型用%c,短整型、整型、长整型和更长的整型用%d,单精度浮点型用%f,双精度浮点型用%lf。
让我们应用以上知识写个简单代码:
#include <stdio.h>
int main()
{
char ch='a';
int age=15;
float f=6.0;
double d=3.24;
printf("%c\n",ch); //打印字符型数据类型
printf("%d\n",ch); //打印整型十进制数据
printf("%f\n",ch); //打印单精度浮点型数据
printf("%lf\n",ch); //打印双精度浮点型数据
return 0;
}
每种类型的变量都有自己所对应的长度,我们可以通过sizeof函数求得。示例如下:
#include <stdio.h>
int main()
{
printf("%d\n",sizeof(char)); //1字节
printf("%d\n",sizeof(int)); //4字节
printf("%d\n",sizeof(short)); //2字节
printf("%d\n",sizeof(long)); //4字节
printf("%d\n",sizeof(long long)); //8字节
printf("%d\n",sizeof(float)); //4字节
printf("%d\n",sizeof(double)); //8字节
return 0;
}
※C语言标准规定sizeof(long)>=sizeof(int);
※sizeof的功能是求各数据类型向内存请到的内存大小;
※计算机中的单位:bit(比特位),byte(字节),kb(千字节),mb(兆字节),gb(千兆字节),tb(太字节),pb(拍字节); 计算机开辟只能存放0或1的空间,该空间称为bit(比特位);更大的空间为字节(可以存放8个比特位),一个字节等于八个比特位的大小。以此类推:
1kb=1024byte 1mb=1024kb 1gb=1024mb 1tb=1024gb 1pb=1024tb ......
题外话:C语言的进制有二进制、八进制、十进制和十六进制。如果之后有时间的话,我会专门出一期关于进制之间的相互转换。
※之所以存在这么多的类型,是为了方便运用,避免产生空间的浪费,之后所学的指针将更好的解决对内存的浪费问题。
4.变量与常量
(1)C语言中,生活中变的量称为变量,生活中不变的量称为常量。
①变量:局部变量和全局变量
#include <stdio.h>
int num1=10; //全局变量-定义在代码块{}外面
int main()
{
int num2=20; //局部变量-定义在代码块{}内部
return 0;
}
局部变量与全局变量名字相同时,局部变量优先。但尽量不要相同,会产生不必要的bug。而且C语言中规定,变量的定义要放在当前代码块的前面。
②变量的作用域和生命周期
作用域:一个变量哪里可以用,哪里就是它的作用域。全局变量的作用域是整个工程。
生命周期:全局变量的生命周期为整个程序;局部变量的生命周期从进入作用域开始,出作用域结束。
(2)常量:生活中那些不变的量,分为字面常量、const修饰的变量、#define定义的标识符常量和枚举常量。
const int num1=4;
printf("%d\n",num1);
num1=8;
printf("%d\n",num1);
int n=10;
int arr[n]={0};
以上代码块一共出现了两处错误。一处是const定义后无法再去改变,另一处是数组内部必须是常量。
在学习C语言的过程中我们会见到枚举类型的常量,接下来让我们通过一个代码来体会它的功能。
#include <stdio.h>
enum Sex
{
MALE,
FEMALE,
SECERT
};
int main()
{
printf("%d",MALE); //0
printf("%d",FEMEALE); //1
printf("%d",SECRET); //2
return 0;
}
结语:都是自己的听课总结希望大家能够喜欢。有错误之处敬请指出,我将不胜感激。有志同道合者,也可一同学习哟。
成熟就是在表达自己的感情和信念的同时,又能体谅他人的想法和感受的能力。