想记一些笔记,解决一些小问题,嗯,就这些。
数据类型分内置类型与自定义类型。
内置类型:字符型,整型,浮点型,布尔类型。
字符型,分有符号的与无符号的。英文单词character,简写char,也是一种基本的字符类型。可以用于C语言中定义字符型变量,仅占一个字节。
signed char //有符号的 unsigned char //无符号的
整型:分短整型,整型,长整型,更长整型。
int是常见整型。short int是短整型,long int是长整型,更长整型是long long int
浮点型:float ,double ,long double(就是可以表示带有小数的数据类型)
float定义单精度浮点型,double定义双精度浮点型。
双精度浮点型精确度比单精度高,但单精度在一些处理器上比双精度更快且占用空间少。而且,当值比较极端,比如过大的值,或者过于小的值的时候,单精度将不再准确。平时可以用单精度的,因为很少碰到极端值,这时候就可以大大方方的用float了。
布尔类型:_Bool
在此类型中,0表示假,非0表示真。它的取值范围是false与true,且它的使用需要包含头文件stdbool.h的。
每一种数据结构都有自己的长度,比如float类型长度为32位,也就是占用4字节(即32位,一字节8位,其他数据类型可以上网查,或者也可以自己用编译器试出来,可以使用sizeof操作符。)
sizeof操作符:
sizeof
是⼀个关键字,也是操作符,专门用来计算sizeof的操作符数的类型长度的,单位是字节。
![](https://i-blog.csdnimg.cn/blog_migrate/6181f3e1a0a85b274dabf29c08ab5f5b.jpeg)
sizeof 操作符的操作数可以是类型,也可是变量或者表达式。
但是随操作数的不同,sizeof的使用也有些许差异。
sizeof 的操作数如果不是类型,是表达式的时候,可以省略掉后边的括号的。
sizeof(类型) sizeof 表达式
sizeof 后边的表达式是不真实参与运算的,根据表达式的类型来得出大小。
如下图
![](https://i-blog.csdnimg.cn/blog_migrate/fa7af99377a401519c62ac77a13a43d8.png)
第一行结果中,a指short,b指int,1是整数,也可以指int,所以b+1指int。int为4,short为2,2<4,int装不进去,所以只打印short,也就是2,与赋值的数字13一点关系没有。
第二行结果中,此时的a=3,单指赋值为3,因为用的不是sizeof,所以并不是计算字节。(而且,用的也不是%zd,而是普通的%d)
sizeof 的计算结果是
size_t
类型的。
它是一种无符号整型,里面保存的是整数,像int或者long,不过它保存的整数是用来记录字节数量,size_t全称是size type。
size_t在32位架构上是4字节,在64位架构上是8字节。
32:unsighned int size_t; 64:unsighned long size_t;
注意:int在不同架构下都是4字节,int为带符号数,size_t为无符号数。