C语言入门学习笔记第七章:数据类型
大家好,我是小智!
既然用户申请存储单元的时候要说明存储单元的大小,请问如何让计算机知道大小???
回答:C语言中提供了一些关键字,专门用于表示数据的类型,其实就是用于表示要申请的内存空间的大小。
1. C语言关键字

思考:已知计算机只认识二进制,也就是数据都是以二进制形式存储到内存中,请问为什么还需要这些关键字来表示数据的类型?
回答:程序是给人看的,这些关键字是用于提高程序可读性的,另外这些关键字也是说明数据的宽度的(占几个字节)。
2. 数据类型
2.1 字符型
C语言标准中提供了一个关键字char,其实是character单词的缩写,表示字符的意思,操作系统char类型的数据宽度定义为1字节(如下表),用于存储字符,C语言标准中用单撇号' '表示字符。

C语言标准规定:用户打算存储字符的格式 数据宽度 变量名称 ;例如:
char ch = 'c';
C语言标准中关于字符的种类有两种:
普通字符and转义字符,对于ASCII码表中转义字符,具体内容如下表。
2.1.1 ASCII码表

注意:ASCII码中的转义字符需要使用 ‘\0’ ‘\r’ ‘\n’进行表示,代表字符具有特殊的意义。
思考:已知计算机是以二进制存储数据,意味着写入到存储器中的字符都会被编译器转换为而二进制指令,那请问用户能否直接以二进制指令的形式把字符输入到存储器中,编译时是否会报错??
回答:会报错,因为C语言不支持二进制输入,但是C语言支持八进制、十进制、十六进制。
2.2 整数型
C语言标准中使用关键字int表示整数,关键字int的英文单词是integer,对应的中文具有整数的含义,在32系统下关键字int的数据宽度是4字节,也就意味着存储单元所能存储的整数范围比较广泛。
2.2.1 多种进制的介绍

C语言标准规定了用户可以采用不同的进制来表示数据,常用的进制有八进制、十进制以及十六进制,并且为了区分这三种进制,所以规定每种进制都有对应的前导符(前缀),规定八进制的前缀以0表示,比如064,规定十六进制的前缀以0x/0X表示,比如0x64。
2.2.2 短整型
&nsp; C语言标准中规定使用关键字short来表示短整型,一般短整型的全称是short int,只不过写程序的时候可以写short即可,在32位系统下short短整型占2字节。
2.2.3 长整型
&nsp; C语言标准中规定使用关键字long来表示长整型,一般长整型的全称是long int,只不过写程序的时候可以只写long即可,在32位系统下long长整型占4字节,在64位系统占8字节。
2.2.4 长长整型
&nsp; C语言标准中规定使用关键字long来表示长整型,但是长长整型是使用long long来表示,在32位和64位系统下长长整型占8字节。
思考:C语言中提供了char、int、short、long、long long来表示整型,但是整型数是分正负的,编译器如何来区分整数的正负呢?
回答:C语言标准中提供了两个关键字 signed && unsigned用于修饰整数,unsigned表示无符号,signed表示有符号,C语言中的signed修饰符是隐式声明,也就是用户定义整型变量的时候如果没有特别强调,则整型变量默认是有符号的。
用户如果要存储无符号的整数,则必须定义变量必须显式声明变量是无符号的(unsigned)。
3. 练习


浙公网安备 33010602011771号