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

摘要:
在今天就带小伙伴一起学习和了解C语言中的常量和变量。虽然C语言标准中没有明确规定整型数据的长度,但long类型整数的长度不能短于int类型,short类型整数的长度不能短于int类型。在C语言中,浮点型变量分为两种:单精度浮点数、双精度浮点数,但是double型变量所表示的浮点数比float型变量更精确。

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

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

常量:

1、整型常量(整常数)

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

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

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

十六进制整数,如0x123,-0x12。

2、实型常量

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

2e3f 3.6d0f 3.84d 5.022e+23f

3、字符常量

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

'a' '1''&' ' ' '0x20'

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

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

变量

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

int x = 0,y;

y = x+3;

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

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

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

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

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

变量的数据类型

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

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

1、整型变量

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

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

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

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

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

2、实型变量

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

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

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

表中列出了两种浮点数类型变量所占的空间大小和取值范围。在取值范围中,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。

3、字符型变量

字符型变量用于存储一个单一字符,在 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 ", ch1);

7

printf("%c ", ch2);

8

}

运行结果如图所示。

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

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

部分常见转义字符表

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

ASCII码表

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

表2-6 ASCII码表

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

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

免责声明:文章转载自《C语言入门阶段:教你几招如何牢记常量和变量》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇报错:Uncaught ReferenceError: $ is not defined如何验证PHP是否已经安装/生效下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Excel VBA 根据下拉框单元格的值来改变另一个下拉框单元格的值

在很多的报表开发中,需要用到VBA去设置Excel的一些规则。  以下是一个根据下拉框单元格的值来给特定单元格进行赋值的代码: Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next: Application.ScreenUpdati...

var和let区别简述

   因为习惯用var声明变量,以至于ES6出了let来替代var,我依然继续用var,直到后来慢慢了解let之后,开始尝试使用     不同点:       ①:var属于ES5规范,let属于ES6规范      ②:var有预处理机制,let没有。预处理机制也就是常说的声明提前       声明提前:不管变量被声明在函数什么位置,所有变量声明都会被提...

Mapper.xml主键自增

https://www.cnblo在 mapper.xml 中对于的数据库的表中,由于表设计的是主键自增,所以添加的时候不用给主键 id 赋值,数据库会自动的给 id 赋值,而怎么拿到赋值后的 id 呢,需要在 mapper.xml 中的 insert 中加入:   useGeneratedKeys="true" keyProperty="id" //得到...

c/c++中变量的作用域

作用域规则告诉我们一个变量的有效范围,它在哪儿创建,在哪儿销毁(也就是说超出了作用域)。变量的有效作用域从它的定义点开始,到和定义变量之前最邻近的开括号配对的第一个闭括号。也就是说,作用域由变量所在的最近一对括号确定。 (1) 全局变量:    全局变量是在所有函数体的外部定义的,程序的所在部分(甚至其它文件中的代码)都可以使用。全局变量不受作用域的影响...

004_详解计算机各种语言浮点数运算会存在精度损失原因

      数值数据是一种带符号数,有正负之分.在计算机中对数据进行运算操作时,符号位如何表示?是否也同数值位一道参加运算?如参加,会给运算操作带来什么影响?为了妥善处理好这些问题,就产生了将数值位连同符号位一起编码来表示相应的数的各种表示方法,如数据的原码、补码、反码和移码表示法. 一、所有相关的码解释 (1)正数的原码=反码=补码 负数原码=>最...

JDK安装

转自:http://www.cnblogs.com/smyhvae/p/3788534.html 【正文】 1、安装JDK开发环境 下载网站:http://www.oracle.com/ 开始安装JDK: 修改安装目录如下: 确定之后,单击“下一步”。 注:当提示安装JRE时,可以选择不要安装。 2、配置环境变量: 对于Java程序开发而言,主要...