引言
小编我呢是一个嵌入式方向的爱好者,C语言也是嵌入式必学语言,简单的讲讲我对C的理解,若有不当之处,希望大家多多包涵,哈哈毕竟我只是个菜鸟
首先呢,大家有没有想过我们为什么要学C呢,当然是为了写代码呀,然后通过代码去处理一些数据,到这里我们就需要学习几大数据类型了,就简单讲讲数据类型,下面是我画的一个简要框图。
一.基本数据类型
1.整型
(从空间角度分析定义变量的过程,以int a=1为例:先在内存中只能存放int型数据的地方取出一块,大小为4byte,将这块空间命名为a,并将1存进来)
整型变量,只能存储整数;但可以赋值小数,赋值一个小数之后,他会将小数部分丢掉,只存储整数部分;若定义一个整型变量a,赋值1.1,实际上变量a存储的是1(发生了隐式转换),即:
int a=1.1; //定义一个整型变量a,并且赋值1.1;
printf("%d\r\n",a); //将a打印出来结果为1
输出的格式控制符:%d
另外在对变量的赋值过程中一定不要超出对应数据类型的存储范围,具体范围见下表
大小 | 取值范围(无符号) | |
整型(int) | 4byte (32bit) | 0~42亿 |
短整型(short) | 2byte (16bit) | 0~65535 |
长整型(long) | 4byte (32bit) | 0~42亿 |
长长整型(longlong) | 8byte (64bit) | 0~2的64次方 |
2.实型
(从空间角度分析定义变量的过程,以float b=1.12为例:先在内存中只能存放float型数据的地方取出一块,大小为4byte,将这块空间命名为b,并将1.12存进来)
实型变量,只能存储实数;但可以赋值整数,赋值一个整数之后,他会在小数位添0;若定义一个实型变量b,赋值1,实际上变量b存储的是1.000 000(发生了隐式转换,实际上这种做法没有什么意义),即:
float a=1.12; //定义一个整型变量a,并且赋值1.1;
printf("%f\n",a);; //将a打印出来结果为1.120 000
输出的格式控制符:%f
另外在对变量的赋值过程中一定不要超出对应数据类型的存储范围,具体范围见下表
大小 | 取值范围(无符号) | 以及小数点后保留的位数 | |
单精度(float) | 4byte (32bit) | 0~42亿 | 6~7 |
双精度(double) | 8byte (64bit) | 0~2的64次方 | 15~16 |
3.字符型
字符型变量可以存储整型数据与字符型数据,存储字符是将字符对应的ASCLL码值存储在内部的,例如:
char a ='c';
char b =98;
printf(“%c”,a); / /打印出来的就是字符“c”
printf(“%d”,a); / /打印出来的是字符“c”对应的ascall码值,即:99
printf(“%c”,b); / /打印出来的是数字98对应的字符,即:“b”
printf(“%d”,b); / /打印出来的就是数字98
字符输出的格式控制符:%c
另外在对变量的赋值过程中一定不要超出对应数据类型的存储范围,具体范围见下表
大小 | 取值范围(无符号) | |
字符型(char) | 1byte (8bit) | 0~256 |
小结:整型变量是存储整数的,实型变量是存储小数的,字符型变量是存储字符的 (当然也可以存整数)
定义变量的时候要注意变量的存储范围
使用输出函数printf时要注意,格式控制字符与定义的变量类型相对应
最后
希望能够对一起学习的友友们有点帮助,友友们的支持就是我写下去的动力哈哈~
如果觉得本文还有不足,或者有不清楚的地方,欢迎评论区留言,或者私信交流~
最最最后,,可以点个赞赞好吗~