{ id : 'top-progress-bar', // 请勿修改该值 color : '#77b6ff', height : '2px', duration: 0.2, }

数据类型-常量与变量

前言

  首先,在正式介绍常量与变量之前,我们需要声明C语言中正确的命名方法。
  正如我们在给文件命名时所遵循的命名规则,我们在给C语言变量和常量命名时也需要遵循一定的规则。在变量中,我们称之为标识符(用来标识常量,变量,函数的字符序列)。
  一般情况下,C语言命名有如下规则:

      1)名称由字母,数字,下划线组成。
      2)第一个(即开头)不能是数字。
      3)C语言中大小写敏感。 //e.g.:A与a表示不同的变量/常量
      4)不能使用关键字。

C语言中的关键字一部分如下:

int float double char short long signed unsigned
if else switch case default for while do
break continue return void const sizeof struct typedef
static extern auto register enum goto union volatile
另一部分为系统内置函数。

常量

常量的定义:在程序执行过程中,其值不发生改变的量称为常量。
常量大致分为以下几类分类

1)符号常量

  概念:用标识符代替常量。
  语法:define 符号常量 常量
  目的:为了使程序具有可拓展性与可移植性。
  样例:#define PI 3.1415926 //我们把圆周率用PI替换,在程序中需要使用圆周率时,我们不需要一个一个的键入3.1415926……而是用一个PI代替之

2)直接常量

  概念:用标识符存储常用数据类型常量。
  语法:数据类型 常量名 常量值
  分类:
    整型常量:
      //注:C语言中,整型常量可用后缀字母'l'和'L'表示长整型,在32位机器中。长整型与普通型没有区别,都占用4个字节。
      十进制:由 0~9 与+/-组成,十进制常量没有前缀,数值为 0~9
      八进制:由0开头,后面为0~7组成,通常是无符号数。
      十六进制:由ox开头,后面为 0~9 和 a~f 组成
      //备注:你知道你的QQ号电脑可以用十六进制登录吗?想要一个帅气的QQ登录界面吗,快把QQ转换为十六进制吧!别忘记了加0x哦。
    实型常量://只采用十进制表示形式。
      //注:实型常量后面可以加f或F表示实型常量。
      小数形式:有数字0-9及小数点组成。
      指数型:格式控制符为%e,后面我们会讲到,输出为科学计数法样式,(表示为a E n,a为十进制数,n为阶码)。默认为double型。
    字符常量:
      注意:字符常量与符号常量不一个概念。符号常量用来替换后面的常量表达式,后面可以跟函数。字符常量为一个数据类型,格式控制符为%c,用来存储一个字符,例如'a'。
      概念:单引号括起来的单个普通字符或者转义字符
      特点:
        1)字符常量只能用单引号括起来,不能使用双引号或者其他括号。
        2)字符串常量只能是单个字符,不能是字符串。
        3)字符可以是字符集中任意字符,但数字被定义为字符型后就不能以原数值参与数值运算。
        ASICC表
      样例: char a='a';
    字符串常量:
      C语言中字符串存储有两种形式:字符数组和字符指针(C++STL库中有一个string,不过C语言并没有这种数据类型)。
      概念:字符串,顾名思义,即一串字符。在C语言中,用双引号括起来。
      字符串常量的另一个特点为末尾自动加'\0'作为字符串的结束标志。
      原因:字符串长度不固定。'\0'表示无意义。所以可以作为字符结束标志。
      //注:在计算长度时,实际长度应该是字符的个数+1.

变量

  定义:数据类型 变量1,……,变量n;
  //例如:

      int a;
      int b;
      或者
      int a,b;

  遵循先定义,后使用原则,位置一般放在开头。
  为了理解变量的概念,我们先插入如下说法:

      1、计算机要处理的数据(诸如数字、文字、符号、图形、音频、视频等)是以二进制的形式存放在内存中的;
      2、我们将8个比特(Bit)称为一个字节(Byte),并将字节作为最小的可操作单元。

  我们不妨举一个例子来说明一下:
  生活中我们会找一个小箱子来存放物品,一来显得不那么凌乱,二来方便以后找到。计算机也是这个道理,我们需要先在内存中找一块区域,规定用它来存放整数,并起一个好记的名字,方便以后查找。
  1)那么,C语言中这样在内存中找一块区域:
int a;//int即为:Integer的简写,意思是整数。a是我们给这块区域起的名字;

  按照上面的例子:我们很好理解这句话的意思:在内存中找一块区域,命名为 a,用它来存放整数。
  注意 int 和 a 之间是有空格的,它们是两个词。也注意最后的分号,int a表达了完整的意思,是一个语句,要用分号来结束。
  不过int a;仅仅是在内存中找了一块可以保存整数的区域,那么如何将数字放进去呢?
  2)C语言中这样向内存中放整数:
a=1314;
  '='是一个新符号,在C语言中,这个过程叫做赋值(Assign)。赋值是指把数据放到内存的过程。

  与之相对应的有一个叫做初始化的概念,即在定义的时候赋值,也就是在找到一个箱子的时候把东西放进去
int a=1314;

补充:
      1)先定义变量,再初始化:
      int a;
      a=1314;
      2)定义同时进行初始化:
      int a=1314;

  当然,a中的整数不是一成不变的,只要我们需要,随时可以更改。
  更改的方式就是再次赋值,例如:

      int a=1314;
      a=521;

  第二次赋值,会把第一次的数据覆盖(擦除)掉,也就是说,a 中最后的值是521.
  因为a的值可以改变,所以我们给它起了一个形象的名字,叫做变量(Variable)

数据类型

  数据是放在内存中的,变量是给这块内存起的名字,有了变量就可以找到并使用这份数据。
  在C语言中,int 有一个专业的称呼,叫做数据类型(Data Type)。
  顾名思义,数据类型用来说明数据的类型,确定了数据的解释方式,让计算机和程序员不会产生歧义。在C语言中,有多种数据类型,我们常用的数据类型有以下几种:

说 明 字符型 短整型 整型 长整型 单精度浮点型 双精度浮点型 无类型
数据类型 char short int long float double void

  上述的是基本数据类型,其次,C语言中还包含指针类型,空类型(void),文件类型(file),构造结构(数组,结构体[struct],联合体[unio]).其他的我们会在回来的学习中接触并使用,现在我们只需了解有这些类型就可以。
  关于float,double等实型变量的存储方式,会在后面作出详细解释。

数据长度

  所谓数据长度(Length),是指数据占用多少个字节。占用的字节越多,能存储的数据就越多,对于数字来说,值就会更大,反之能存储的数据就有限。多个数据在内存中是连续存储的,彼此之间没有明显的界限,如果不明确指明数据的长度,计算机就不知道何时存取结束。例如我们保存了一个整数 1000,它占用4个字节的内存,而读取时却认为它占用3个字节或5个字节,这显然是不正确的。所以,在定义变量时还要指明数据的长度。而这恰恰是数据类型的另外一个作用。数据类型除了指明数据的解释方式,还指明了数据的长度。因为在C语言中,每一种数据类型所占用的字节数都是固定的,知道了数据类型,也就知道了数据的长度。

在32位环境中,各种数据类型的所占用的字节数一般如下:

说 明 字符型 短整型 整型 长整型 单精度浮点型 双精度浮点型
数据类型 char short int long float double
长 度 1 2 4 4 4 8

其次,我们也可以使用sizeof()函数来求一个数据类型所占用的字节数。例如:sizeof(int)
我们还需要明白一点,在编程中,存储整数的数据类型的大小关系为:short,int,long 为非递减顺序。
\(short\leqslant int\leqslant long\)
最后:数据类型只在定义变量时指明,而且必须指明;使用变量时无需再指明,因为此时的数据类型已经确定了。

posted @ 2020-12-21 22:23  星空Dreamer  阅读(930)  评论(0)    收藏  举报