c语言数据基础知识
一、数据类型及其所对应的占位符(转换说明)
1.int型
整数型,int型变量所储存的数据是整数。
占位符(转换说明):%d(十进制)
2.short型(又叫short int型)
整数型加上附属修饰关键字:short ,short型变量所储存的数据是整数,一般是比较小的整数,有利于节省空间,增加运算速度。
占位符(转换说明):%hd(十进制)
3.long型(又叫long int型)
整数型加上附属修饰关键字:long ,long型变量所储存的是整数,一般是比较大的整数。
占位符(转换说明):%ld(注意是小写的L)(十进制)
4.long long型(又叫long long int型)
整数型加上附属修饰关键字:long long,long long型变量所储存的是整数,一般是特别大的整数。
占位符(转换说明):%lld(十进制)
5.unsigned型(又叫unsigned int型)
整数型加上附属修饰关键字:unsigned,unsigned型变量所储存的是非负整数,可以储存0和正整数,他的储存范围要大于int型。
占位符(转换说明):%u(十进制)
6.unsigned long型(又叫unsigned long int型)
整数加上附属修饰关键字:unsigned long,unsigned long型变量储存的是非负整数,可以储存0和正整数,他的储存范围比long型要大。
占位符(转换说明):%lu(十进制)
7.unsigned long long型(又叫unsigned long long int型)
其储存范围要比unsigned long型更大。
占位符(转换说明):%llu
8.unsigned short型(又叫unsigned short int 型)
其储存范围要比short大。
占位符(转换说明):%hu
9.double型
double型变量储存的是浮点数(小数)。
浮点数的两种写法:(1) 1.3455 -3.456
(2) 科学计数法:3.45e34(表示3.45乘十的34次方) 3.43e-4(表示3.43乘十的负4次方)
占位符(转换说明):%f(十进制,默认保存6位小数) %.nf(十进制,保存n位小数)
%e (显示为科学计数法型)
*无论是科学计数法型的还是普通型的,使用%e、%f这两个转换说明就能进行转换。
//显示科学计数法型的浮点数
10.long double型
浮点型加上附属修饰关键字long,long double型变量储存的是浮点数,储存范围要大于double型。
占位符(转换说明):%Lf(十进制,注意L要大写,默认保存6位小数) %.nLf(十进制,保存n位小数)
%Le(显示为科学计数法型)
11.char型(重点)
我们把char类型理解为微整数类型,也就是char类型储存数据的形式是整数形式,对于char类型来说,转换说明以及ASCII码至关重要。
char类型可以根据不同的转换说明(%d转换成整数型显示,%c转换成字符型显示)来显示不同的形式。
char类型可以显示的字符类型是ASCII码中的所有字符。但是如果要显示字符时,只能显示一个。
如果使用字符来对char类型进行赋值或者初始化时,需要使用单引号' '
通过以下代码来了解不同情况下的char类型:
情况一:对char类型进行赋值或者初始化
//重新定义char类型,char类型是微整数类型,取值范围是0~127
情况二:通过输入函数getchar()、scanf()等函数键入char类型
//通过输入型函数来理解char类型:微整数类型
以上就是char类型(微整数型的全部理解)
12.char类型数组或者字符串类型
此类型能够储存多个字符,设置办法:
//char数组类型或者字符串类型的认识
注意,char类型数组或者字符串类型在赋值或者初始化时,一定不要丢掉双引号。
这两个类型的占位符(转换说明)都是:%s
13.可移植类型:
需要在增加inttypes.h这个头文件。
//inttypes.h头文件下的intN_t数据类型的使用
1.intN_t型
N代表数据转化为二进制时的位数,也就是转化为二进制时的数据宽度,这个宽度是自己精确的。

2.intmax_t(最大宽度类型)

unintmax_t PRIuMAX SCNuMAX
上面这些表格中的说明符我们叫做:说明宏,使用方法%"PRIdMAX" 这就相当与一个转换说明。
系统所能分配的最大位数(数据转换成二进制时的位数)
二、计算机(CPU)的储存单元
1.位(bit)
一个位只能储存一个0或者一个1。
2.字节(byte)计算机中最经常出现的储存单元
一个字节包括8个位。
字节之间的转换(内存之间的转化):
1024B=1KB; 1024KB=1MB; 1024MB=1GB; 1024GB=1TB;
3.字
字也是计算机的储存单元,CPU的不同,字长也可能不同,有16位,32位,64位(但一定是2的整数次幂)
字同时也是计算机处理二进制数据的度量,一次处理一个字。
字长是计算机一次处理二进制数的位数,字长越大,计算机的处理能力越强。
三、常量与固定常量
1.常量
直接输入的数字就叫做常量:包括整数和浮点数和字符(这个字符一定要加单引号)以及字符串(一定要有双引号)。
可以直接将这些值写道printf()函数的待打印部分中,或者对变量进行赋值,对变量进行初始化,或者固定常量。
例如:
//字符常量以及字符串常量的使用
2.固定常量
对于固定常量的名称,我们用大写字母,这样便于区分。
相对于变量可以随时进行初始化,赋值,以及scanf()函数键入更改,固定常量不能更改。
固定常量有两种方法:
(1)使用const关键字
设置形式如下:const <数据类型><常量名称><初始化> 这里的初始化是必须进行的。
(2)使用#define预指令(宏)
#define预指令的作用是在程序执行前,将预指令所包含的固定常量的值带入到程序中去。
//#define预指令的使用
四、十进制、八进制、十六进制
三种进制之间可以进行相互的转换,只需要改变printf()函数中的占位符(转换说明)就能完成。
1.十进制
数据类型的占位符同
2.八进制
为了便于区分,要在八进制数前加上前缀来进行区分:0(零)
八进制的整型同样是
不同点:
(1.变量操作方面)
把占位符%d中的d全部换成o即%o,其余部分不变。
如果想让八进制前缀出现的话需要在占位符中加上#即%#o,其余部分不变。
(2.常量操作方面)
设置八进制的常量,要在其数字前面加上八进制前缀。
//八进制变量操作
3.十六进制
为了便于区分,要在十六进制数前加上前缀来进行区分:0x(零和x)
十六进制的整型同样是
不同点:
(1.变量操作方面)
把占位符%d中的d全部换成x即%x,其余部分不变。
如果想让十六进制前缀出现的话需要在占位符中加上#即%#x,其余部分不变。
(2.常量操作方面)
设置十六进制的常量,要在其数字前面加上十六进制前缀。
//十六进制变量操作

浙公网安备 33010602011771号