C语言的数据类型基本介绍
在C语言中,数据类型可以分为:基本数据类型(整型、浮点型/实型、字符型)、构造数据类型(数组、指针、结构体、共用体、枚举)以及空类型(万能类型void)。常用的有:整形(int)、字符型(char)、短整型(short)、长整型(long)、单精度浮点型(float)、双精度浮点型(double)。
1. 整型
1)整型数据类型概述
整型数据是指不包含小数部分的数值型数据(例如:123、-123、567),整型数据类型使用关键字“int”来表示。C语言规定了一个“int”整型数据至少占用2个字节的空间大小,通常占用4个字节的空间(8位、16位单片机中int占2个字节,32位单片机和PC电脑int占4个字节)。以下所讲的int类型都是以32位单片机为基础的。
2)整型数据类型分类
整型数据根据是否支持符号(正负号)形式分为:有符号类型(signed)和无符号类型(unsigned),缺省(默认)表示为有符号类型(int 等价于 signed int)。
a)有符号类型 4byte = 32bit 1个符号位 + 31个数据位
int / signed int有符号类型的整型数据使用最高位来表示符号位(0:正 1:负),其余31位用来表示数据。数据的取值范围是:-2^31~+2^31-1。(之所以是31次方是因为一共有32位但是有一位做符号位去了,所以只剩31位。 因为有0,所以 -1 )
b)无符号类型 unsigned int--unsigned不允许省略
无符号类型的整型数据只能表示正整数,所有32位都用来表示数据。数据的取值范围是:0~2^32-1。
注:如果数值超出了取值范围,像unsigned int(无符号整型)的最大值为4294967295,如果存入的数值为4294967296,则输出结果为0;会出现循环的情况。像signed int(有符号整型,一般signed省略不写,直接用int来表示)的取值范围为- 2147483648 ~ 2147483647如果存入的数值为2147483648则输出结果为- 2147483648,但是如果需要的是无符号的整型,则必须写unsigned int ,这个unsigned不能省略。并且计算机的溢出属于归位溢出,一旦出现溢出情况,那么计算机就会从最大值或者最小值重新开始计算,超出多少,就从最值开始数几个位,应该避免溢出的情况,前期影响不大,后期会出现bug。
2. 字符型-----主要是用来存储字符
1)字符型数据类型概述
字符型数据使用关键字“char”来表示。字符型数据是在存储空间中通过存储一个特定的整数来表示一个特定的字符(ASCII)。 字符的表示方法为:单引号引起来单独的一个字符,单引号引起来的叫字符。常用的有 '0' 'a' 'A' '\0' '\n' ' ' 。最后一个是空格
(这几个需要牢记,并且可以通过这几个将后面的推出来,知道字符‘0’就能推出字符‘1’~‘9’,知道‘a’~就能推出‘b’~‘z’,大写一样,严格区分大小写)。
常用字符ASCLL码:
'0'----48 'a'----97 'A'----65 '\0'---0 '\n'---10' ' '---32
ASCLL表
2)字符型数据意义 ----char的功能
a)存放整数 -128 ~ 127 0-255
C语言中规定“char”占1个字节空间大小,字符型同样分“有符号(char/signed char,数据的取值范围是:-2^7~+2^7-1)”和“无符号(unsigned char,数据的取值范围是:0~2^8-1)”。
b)存放字符 ‘ ’
C语言中字符分为两类,一类为打印字符(可见字符,普通字符),使用单引号(’’)括起来,例如:'a'、'1'、' ';另一类为控制字符(不可见字符,转义字符),使用反斜杠(\)+字符来表示。例如:\n(换行)、\r(空格)、\b(退格)、\t:Tab。(常用的就这几个,需要牢记。其他可以不用记忆)
注:字符型属于两种表示方法,可以表示一个整数,也可以表示一个字符,字符使用的原则是:只要在程序中,凡是看到字符,其实就是一个整数,当整数来使用。
3. 短整型 2byte-16bit
短整型数据类型使用关键字“short(short int)”来表示,C语言中规定了短整型占2个字节大小的空间,同样短整型也分为“有符号短整型(short/signed short,数据的取值范围是:-2^15~+2^15-1)”和“无符号短整型(unsigned short,数据的取值范围是:0~2^16-1)”。 最大值是65535,要牢记这个数,在考试或面试中有很大机率出现
4. 长整型
长整型数据类型使用关键字“long”来表示,C语言中规定了长整型占4个字节大小的空间,同样长整型也分为“有符号长整型(long/signed long,数据的取值范围是:-2^31~+2^31-1)”和“无符号长整型(unsigned long,数据的取值范围是:0~2^32-1)”。
5. 长长整型---C99
长长整型数据类型使用关键字“longlong”来表示,C语言中规定了长长整型占8个字节大小的空间,同样长长整型也分为“有符号长长整型(longlong/signed longlong,数据的取值范围是:-2^63~+2^63-1)”和“无符号长长整型(unsigned longlong,数据的取值范围是:0~2^64-1)”。但需要注意,长长整型数据类型只有在C语言的C99标准中存在,在C89标准中是不存在的。
6. 浮点型/实型---小数类型
1)浮点型数据类型概述
浮点型数据类型也称为“实型数据类型”,来用存储带有小数点的数据(必须有小数点),例如:-12.0、23.456、25.。浮点型数据中不区分“有符号”和“无符号”,固定为“有符号”类型(数据的最高位为符号位)。
2)浮点型数据类型
浮点型数据类型根据小数点的精确位数,分为“单精度浮点型”和“双精度浮点型”。
a)单精度浮点型
单精度浮点型使用关键字“float”来表示,C语言中规定“float”占4个字节的大小空间,小数点至少精确到小数点后的6~7位。
b)双精度浮点型
双精度浮点型使用关键字“double”来表示,C语言中规定“double”占8个字节的大小空间,小数点至少精确到小数点后的16~17位。
注:无论是单精度还是双精度,不需要考虑整数部分是否能存的开,只需要考虑小数点后的精确度即可。
数据常量和数据变量
1. 数据常量
数据常量概述
数据常量是指在程序运行的过程中,其值是不可改变的数据。因为常量的数值不可改变,一般使用一个固定的数值去表示一个常量。例如:12、-78、12.89、's'。
数据常量分类
数据常量分为“数值型常量”和“字符型常量”两种,通过数据的形式可以判断常量的类型,常量的数据类型使用默认类型。
1)数值型常量 15456ul 15.6 15--int 15UL 15.2
整型常量类型默认为“int(有符号整型)”,浮点型常量默认为“double(双精度浮点型)”。可以通过尾缀的形式改变数值常量的类型,如:12L表示为“long(长整型)”,12ul表示为“无符号长整型”。
2)字符型常量
字符型常量分为“字符常量”和“字符串常量”。
a)字符常量:使用单引号(‘’)引起来的单个字符。如:'a'、'1',在存储器中占1个字节的空间。
“5” ---字符串5,他所表示的字符为:”5” =‘5’+‘\0’
‘5’---只有一个字符,字符为5,ASCLL码就是53
b)字符串常量:使用双引号(“”)引起来的单个或多个字符。如:“a”、“Hello”,在存储器中占的空间大小为字符串字符个数+1个字节。
注:在字符串结束的时候,编译器会在字符串的最后面加上一个字符串结束字符‘\0’。
2. 数据变量
2.1 数据变量概述
数据变量是指在程序运行的过程中,其值可以改变的数据。因为变量的数值是可以变化的,不是固定不变的,一般使用一个固定的名称(标识符)来表示一个变量。
2.2 数据变量组成
数据变量由变量名(标识符)和变量值(常量数值、变量、表达式)两部分组成。
2.3 变量、数组、结构体、链表、函数、指针(标识符)的命名规则--只要在C语言中取名字都必须要遵守这三条
1)、只能由字母(严格区分大小写)、数字、下划线以及美元符号($)组成
2)、不能以数字开头
3)、不能与关键字重复(重名)
注:在定义变量名的时候,遵循“望文生义”的原则,尽量使用突出“内容”、“功能”以及“含义”等词汇来对变量进行命名(可参考华为C语言规范.pdf文档,需要可以私信)。文章来源:https://www.toymoban.com/news/detail-724981.html
3. 数据变量定义
变量定义的格式:数据类型 变量名; int a,b,c;
例如:int age = 0; // 定义了一个整型变量age
1)数据类型:规定了变量能够保存什么样类型的数据。使用“基本类型”、“构造类型”以及“空类型”来作为变量的数据类型。
2)变量名:数据变量的标识符,代表该变量的名称。
4. 数据变量赋值
1)初始化赋值:在定义变量的时候,使用“赋值运算符(=)”来直接给变量进行赋值,不用的变量一般初始化为0。 int a = 0; int A = 102;
2)不初始化赋值:在定义变量 的时候,没有给变量赋初始值,那么这个变量的初始值为随机值(在大括号内(函数内)的变量) int a 文章来源地址https://www.toymoban.com/news/detail-724981.html
到了这里,关于C语言的数据类型(整型、字符型,浮点型等详细介绍、ASCLL表以及常量、变量的详细介绍)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!