2.C语言基本数据类型

C语言基本数据类型

![](https://img2020.cnblogs.com/blog/1872241/202009/1872241-20200925230359382-1832063141.png)

常量、变量和用户标志符

  • 常量

    常量是在运行过程中其值不发生变化的量。

    常量可以是任何基本类型的值(整型、实型、字符型以及字符串常量)。

    可以使用define命令定义符号常量,如:#define PI 3.1415926。

  • 变量

    变量是在程序运行的过程中,其值可以在一定范围内发生变化的量。

    C语言中,要求对所有用到的变量做类型强制定义。变量类型定义后,即可分配内存空间。

    变量名实质上是计算机内存单元的命名,变量的地址就是该内存单元的开始地址。

    在程序运行中,通过变量名来引用变量的值,变量值存储在内存中。

  • 标识符

    标志符主要用来表示变量名、符号常量名、函数名等。

    合法的标识符只能由字母、数字和下划线三种字符组成,并且第一个字符不能为数字。

    标识符一般分为三类:关键字、预定义标识符、用户定义标识符。

    如果用户标志符与关键字相同,程序将在编译时报错;如果与预定义标识符相同,该预定义标识符会失去原定含义,可能会引发运行时的错误。

整型

  • 整型常量

    整型常量就是一个整数,它有三种表示形式:

    • 十进制、八进制(以数字0开头)和十六进制(以数字字母0x开头)。

    如果一个整型常量后面加一个字母u或者U,则认为它是unsigned int型。

    如果一个整型常量后面加一个字母l或者L,则认为它是long int型。

  • 整型变量

    整型类型占用字节数占用位数取值范围
    int216-2^15~2^15-1
    short int216-2^15~2^15-1
    long int432-2^31~2^31-1
    unsigned int2160~2^16-1
    unsigned short int2160~2^16-1
    unsigned long int4320~2^32-1
  • 整型在内存中的存储形式

    数值是以补码的形式进行存储的。

    一个正数的补码和其原码相同,而一个负数的补码为先对其原码按位取反,再加1。

    对于无符号型的整数,所有位都用来存放数值。

    对于有符号型的整数,内存最高位用来存放整数的符号,0表示正整数,1表示负整数。

  • 整型数据的溢出

    当定义了一个整型变量时,它在内存中存储的字节数也就固定下来了也即确定了它的最大值。

    例如int型在内存中占用2个字节,则它的最大允许的值为32767,如果再加上1,就会发生溢出,数值变为-32768。

实型(浮点型)

  • 实型常量

    实型常量就是一个实数,又称浮点数,它有两种表示形式:

    • 十进制小数形式(如-10.8)和指数形式(如100e5表示100*10^ 5)。

    小数点前必须有且只能有一位非零的指数形式称为规范化指数形式。

    实型常量均为有符号型浮点数,且只能用十进制形式表示。

    可以在实型数据后面加上字母f或F,表示单精度实型数据。

  • 实型变量

实型类型占用字节数占用位数有效数字取值范围
float4327+(10^-38~10^38)
double86415~16+(10^-308~10^308)
  • 实型在内存中的存储形式

    实型数据在内存中是以指数的形式来进行存储的。内存空间分为两个独立的位段,一段用来存放小数部分,一段用来存放指数部分。具体到每个位段多少位,ANSI C 未作规定,由各种语言处理系统自行确定。

  • 实型数据的误差

    由于实型数据的内存存储单元位数有限,所以有效位数意外的其他数字位将会被舍去,这种误差被称为存储误差(舍入误差)。

    此外,再将十进制数转换为二进制数时,有时也会产生误差,这种误差称为转换误差。

字符型

  • 字符常量

    C语言的字符常量是用单引号括起来的单个字符。

    转义字符,就是一个反斜杠字符后面跟一个普通字符或若干个数字字符,把它们作为一个整体,用来代替某一个特殊字符。

  • 字符变量

    字符变量用来存放字符常量,其取值范围为ASCII码字符集中的256个字符。

    字符变量用char来定义。

    每个字符变量在内存中只占用一个字节(8位)的存储空间,只能用来存储一位字符常量。

  • 字符型数据在内存中的存储形式

    字符型数据在内存中存储的是与该字符的ASCII码值相等的整数值。

    在C语言中可以把字符型的数据当整型数据来使用。

  • 字符串常量

    C语言中的字符串常量是用一对双引号括起来的字符序列。

    C语言规定,在每一个字符序列的结尾都加上一个字符‘‘,作为字符串结束的标志。

    字符常量’a‘可以赋给字符型变量,而字符串”a“只能用字符型数组存放。

原文地址:https://www.cnblogs.com/xqisui/p/13733055.html