zoukankan      html  css  js  c++  java
  • 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“只能用字符型数组存放。

  • 相关阅读:
    团队项目冲刺第十天
    gradle文件配置
    idea无Android项目
    php第二次实验报告
    最长回文字串(hdu 3068)
    优先队列实现哈弗曼最小权值
    最小生成树 克鲁斯卡尔(Kruskal)算法求最小生成树
    背包问题------ 分类: ACM 2015-08-03 20:57 1人阅读 评论(0
    Cent Savings (DP) 分类: ACM dp 2015-08-0
    Judging Troubles (multiset查找) 分类: ACM STL
  • 原文地址:https://www.cnblogs.com/xqisui/p/13733055.html
Copyright © 2011-2022 走看看