C语言入门阶段:教你几招如何牢记常量和变量

小伙伴们有没有想过什么是C常量,什么是C变量?为何它们是编程世界的重要组成部分?在今天就带小伙伴一块儿学习和了解C语言中的常量和变量。编程


 

常量:

一、整型常量(整常数)

        整型常量是整数类型的数据。可用如下三种形式表示,具体以下:函数

十进制整数,123,-456,0;学习

八进制整数,如0123,-011;编码

十六进制整数,如0x123,-0x12。操作系统

二、 实型常量

        实型常量也称为浮点数常量,也就是在数学中用到的小数,能够分为 float 单精度浮点数和 double 双精度浮点数两种类型。其中,单精度浮点数后面以F 或 f 结尾,而双精度浮点数则以 D 或 d 结尾。固然,在使用浮点数时也能够在结尾处不加任何的后缀。浮点数常量还能够经过指数形式来表示,具体示例以下:3d

2e3f  3.6d 0f  3.84d  5.022e+23f  指针

三、 字符常量

        字符常量用于表示一个字符,一个字符常量要用一对英文半角格式的单引号(' ')引发来,它能够是英文字母、数字、标点符号以及由转义序列来表示的特殊字符。具体示例以下:orm

'a'  '1' '&'  '\r' '0x20' blog

上面的示例中,'0x20'表示一个空白字符,即在单引号之间只有一个表示空白的空格。之因此能这样表示是由于C 语言采用的是 ASCII 字符集,空格字符在 ASCII 码表(文章底部)中对应的值为'0x20'。教程


 

变量

在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每一个内存单元都用一个标识符来标识。这些内存单元咱们称之为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。具体以下:

int x = 0,y;

y = x+3;

        上面的代码中,第一行代码的做用是定义了两个变量 x 和 y,也就至关于分配了两块内存单元,在定义变量的同时为变量 x 分配了一个初始值 0,而变量 y没有分配初始值,变量 x 和 y在内存中的状态以下图所示。


 

     第二行代码的做用是为变量赋值,在执行第二行代码时,程序首先取出变量x的值,与3相加后,将结果赋值给变量y,此时变量 x 和 y在内存中的状态发生了变化,以下图所示。


 

从上图以及上面的描述不难发现,变量实际上就是一个临时存放数据的地方。在程序中,能够将指定的数据存放到变量中,方便随时取出来再次进行使用。

变量的数据类型


 

        从上图中能够看出,C 语言中的数据类型可分为 4 种,分别是基本类型、构造类型、指针类型、空类型。

一、整型变量

        在程序开发中,常常会遇到 0、-100、1024 等数字,这些数字均可称为整型。整型就是一个不包含小数部分的数。在C 语言中,根据数值的取值范围,能够将整型定义为短整型(shortint)、基本整型(int)和长整型(longint)。下表列举了整数类型的长度及其取值范围。

  整数类型的长度及其取值范围


 

从上表中能够看出,整数类型可分为 short、int 和 long,这三种类型能够被 signed 和 unsigned 修饰。其中,被 signed 修饰的整数类型称为有符号的整数类型,被unsigned 修饰的称为无符号的整数类型。它们之间最大的区别是无符号类型能够存放的正数范围比有符号类型中的范围大一倍。例如,int 的取值范围是 -231~231-1,而unsigned int 的取值范围是 0~232-1。默认状况下,整型数据都是有符号的,此时signed 修饰符能够不用写。须要注意的是,整型数据在内存中占的字节数与所选择的操做系统有关。虽然 C 语言标准中没有明确规定整型数据的长度,但 long类型整数的长度不能短于 int 类型,short类型整数的长度不能短于 int 类型。


 

二、实型变量

        实型变量也能够称为浮点型变量,浮点型变量是用来存储小数数值的。在 C 语言中,浮点型变量分为两种:单精度浮点数(float)、双精度浮点数(double),可是 double 型变量所表示的浮点数比 float 型变量更精确。下表列举了两种不一样浮点型数所占用的存储空间大小及取值范围。

                                                           浮点类型长度及其取值范围


 

  表中列出了两种浮点数类型变量所占的空间大小和取值范围。在取值范围中,E 表示以 10 为底的指数,E后面的“+”号和“-”号表明正指数和负指数,例如,1.4E-45 表示 1.4*10-45。在 C 语言中,一个小数会被默认为 double 类型的值,所以在为一个float 类型的变量赋值时须要注意一点,所赋值的后面必定要加上字母“F”(或者小写“f”),而为 double类型的变量赋值时,其所赋值后面的字符“D”(或小写“d”),能够省略。具体示例以下:

float f = 123.4f;  

//为一个float类型的变量赋值,后面必须加上字母f

double d1 = 100.1;  

//为一个double类型的变量赋值,后面能够省略字母d

double d2 = 199.3d; 

//为一个double类型的变量赋值,后面能够加上字母d

另外,在程序中也能够为一个浮点数类型变量赋予一个整数数值,示例以下: 

float f = 100;   //声明一个float类型的变量并赋整数值

double d = 100;  //声明一个double类型的变量并赋整数值

float 和double 之间的数据转换

        因为浮点型变量是由有限的存储单元组成的,所以只能提供有限的有效数字。在有效位之外的数字将被舍去,这样可能会产生一些偏差,例如,将 3.141592612 赋给一个 float 型变量,但它只能保证前 7 位是有效的,即使成3.141593。

三、字符型变量

        字符型变量用于存储一个单一字符,在 C语言中用 char 表示,其中每一个字符变量都会占用 1 个字节。在给字符型变量赋值时,须要用一对英文半角格式的单引号(' ')把字符括起来,例如,'A'的声明方式以下所示:

char ch = 'A';   //为一个char类型的变量赋值字符'a'

        上述代码中,将字符常量'A'放到字符变量ch 中,实际上并非把该字符自己放到变量的内存单元中去,而是将该字符对应的 ASCII 编码放到变量的存储单元中。例如:ASCII使用编号 65 来对应大写字母“A”,所以变量 ch存储的是整数 65,而不是字母“A”自己。经过一个案例来讲明,如例所示。

 1

#include <stdio.h>

 2

void main()

 3

{

 4

    char ch1 = 'A';

 5

    char ch2 = 65;

 6

    printf("%c\n", ch1);

 7

    printf("%c\n", ch2);

 8

}

运行结果如图所示。


 

        例中,定义了两个char 类型变量,分别赋值为字符'A'和数字65,而后经过 printf 函数把两个变量的内容以字符形式打印到屏幕上。从图中能够看出,两个变量输出的结果是同样的,这说明对于字符型来讲,A和 65 其实没什么区别。严格来讲,字符类型也是整型类型。须要注意的是,除了能够直接从键盘上输入的字符(如英文字母,标点符号,数字,数学运算符等)之外,还有一些字符是没法用键盘直接输入的,好比,“回车”,此时须要采用一种新的定义方式——转义字符,它以反斜杠\开头,随后接特定的字符。下表列举了一些常见的转义字符。

                                                                    部分常见转义字符表


 

ASCII码表

        计算机使用特定的整数编码来表示对应的字符。咱们一般使用的英文字符编码是 ASCII(American Standard Code forInformation Interchange 美国信息交换标准编码)。ASCII 编码是一个标准,其内容规定了把英文字母、数字、标点、字符转换成计算机能识别的二进制数的规则,而且获得了普遍承认和遵照。下表为ASCII 码表的可打印字符部分(0 ~ 127),供你们查阅使用,如表2-6 所示。

表2-6 ASCII码表


 

在这篇教程中,咱们细致的讨论了如何定义C语言中常量或字符,以及其余可用的常量类型。在完成本教程以后,你已经基本掌握了C语言的常量和字符的知识。固然,若是还有遗漏之处,欢迎你们留言指出。