Menu Close

什么是常量和转义字符?

常量

常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量

常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值。

常量就像是常规的变量,只不过常量的值在定义后不能进行修改。

整数常量

整型常量就是整常数。在C语言中,使用的整常数有八进制、十六进制和十进制三种。

一)十进制整常数:

十进制整常数没有前缀。其数码为 0~9。

以下各数是合法的十进制整常数:

237、-568、65535、1627;

以下各数不是合法的十进制整:

023 (不能有前导 0)、23D (含有非十进制数码)

二) 八进制整常数:

必须以 0 开头,即以 0 作为八进制数的前缀。数码取值为 0~7。

合法的八进制数:
015(十进制为 13)、0101(十进制为65)、0177777(十进制为 65535);

不合法的八进制数:

256(无前缀 0)、03A2(包含了非八进制数码)、-0127(出现了负号)。

三)十六进制的整常数

十六进制整常数的前缀为 0X 或 0x。其数码取值为 0~9, A~F,或a~f。

合法的十六进制整常数:

0X2A(十进制为 42)、0XA0(十进制为 160)、0XFFFF (十进制为 65535)

不合法的十六进制整常数:

5A (无前缀 0X)、0X3H (含有非十六进制数码)。

整型常数的后缀:在 16 位字长的机器上,基本整型数的范围也是有限定的。十进制无符号整常数的范围为 0~65535,有符号数为-32768~+32767。八进制无符号数的表示范围为 0~0177777。十六进制无符号数的表示范围为 0X0~0XFFFF 或 0x0~0xFFFF。如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。

八进制或十六进制的常量在C语言中很少使用,如果将来碰到,我们在进一步阐述。

浮点常量

浮点常量由整数部分、小数点、小数部分和指数部分组成。您可以使用小数形式或者指数形式来表示浮点常量。

当使用小数形式表示时,必须包含整数部分、小数部分,或同时包含两者。当使用指数形式表示时, 必须包含小数点、指数,或同时包含两者。带符号的指数是用 e 或 E 引入的。

字符常量

字符常量是括在单引号中,例如,’x’ 可以存储在 char 类型的简单变量中。我们还可以通过提供ASCII值来表示字符常量。

C语言中字符型常量所表示的值是int型所能包含的值。我们可以用ASCII表达式来表示一个字符型常量,或者用单引号内加反斜杠表示转义字符。
‘A’, ‘\x2f’, ‘\013’;
其中:\x表示后面的字符是十六进制数,\0表示后面的字符是八进制数。
例如十进制的17用十六进制表示就是
‘\x11’,用八进制表示就是‘\021’;
上面我们见到的\x,\n,\a等等都是叫转义字符,它告诉编译器需要用特殊的方式进行处理。

转义字符

转义字符是C语言中表示字符的一种特殊形式。 转义字符以反斜’\’开头,后面跟一个字符或一个八进制或十六进制数表示。 转义字符具有特定的含义,不同于字符原有的意义,故称转义字符。 从表中可以看出,在C语言中有三种转义字符,它们:一般转义字符、八进制转义字符和十六进制转义字符

字符常量可以是一个普通的字符(例如 ‘x’)、一个转义序列(例如 ‘\t’),或一个通用的字符(例如 ‘\u02C0’)[Unicode编码] 。

在 C 中,有一些特定的字符,当它们前面有反斜杠时,它们就具有特殊的含义,被用来表示如换行符(\n)或制表符(\t)等。下表列出了一些这样的转义序列码:

下面的实例显示了一些转义序列字符:

所有的转义字符和所对应的意义:
转义字符
意义
ASCII码值(十进制)
\a
响铃(BEL)
007
\b
退格(BS) ,将当前位置移到前一列
008
\f
换页(FF),将当前位置移到下页开头
012
\n
换行(LF) ,将当前位置移到下一行开头
010
\r
回车(CR) ,将当前位置移到本行开头
013
\t
水平制表(HT) (跳到下一个TAB位置)
009
\v
垂直制表(VT)
011
\\
代表一个反斜线字符”\’
092
\’
代表一个单引号(撇号)字符
039
\”
代表一个双引号字符
034
\? 代表一个问号 063
\0
空字符(NUL)
000
注意:
1. 区分,斜杠:”/” 与 反斜杠:”\” ,此处不可互换
2. \xhh 十六进制转义不限制字符个数 ‘\x000000000000F’ == ‘\xF’ 
例一:转义字符”\t”的应用
#include <stdio.h>

int main()
{
   printf("Hello\tWorld\n\n");
   return 0;
}

 

%title插图%num

字符串常量

字符串常量包含用双引号(“”)括起来的一系列字符。
例如, “Hello”, “Programming”

实数常量

整数常量总是包含一个整数值。 “ C”还提供了包含小数点或分数值的实常数。 实常数也称为浮点常数。 实常数包含小数点和小数值。

例如: 202.15, 300.00

如何定义常量?

在 C 中,有两种简单的定义常量的方式:

  • 使用 #define 预处理器
  • 使用 const 关键字

1. 使用const 关键词:

例二:使用const关键词定义常量

#include <stdio.h>

int main() 
{
    const double PI = 3.14;
    printf("%f", PI);
    //PI++; // 结果出现错误,因为常数无法修改
    return 0;
}

结果:

%title插图%num

2. 使用 #define 预处理器

例三)使用 #define 预处理器定义常量

#include <stdio.h>
#define PI 3.14

int main() 
{
    printf("%f", PI);
    return 0;
}

结果:

%title插图%num

其中#define 也是一条预处理命令(预处理命令都以”#”开头),称为宏定义命令(在后面预处理程序中将进一步介绍),其功能是把该标识符定义为其后的常量值。

一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。

习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。

用标识符代表一个常量,称为符号常量。

  1.  符号常量与变量不同,它的值在其作用域内不能改变,也不能再被赋值。
  2.  使用符号常量的好处是:
    •  含义清楚;
    •  能做到“一改全改”

C语言中%d, %o, %f, %e, %x的意义

格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。

格式说明总是由“%”字符开始的。不同类型的数据用不同的格式字符。

格式字符有d,o,x,u,c,s,f,e,g等。

  • %d整型输出,%ld长整型输出,
  • %o以八进制数形式输出整数,
  • %x以十六进制数形式输出整数,
  • %u以十进制数输出unsigned型数据(无符号数)。
  • %c用来输出一个字符,
  • %s用来输出一个字符串,
  • %f用来输出实数,以小数形式输出,
  • %e以指数形式输出实数,
  • %g根据大小自动选f格式或e格式,且不输出无意义的零。

例四)%o %x %d 等格式说明符的应用

int main()
{
    int x, y;
    float salary = 13.48;
    char letter = 'K';
    x = 25;
    y = 34;
    int z = x+y;
    printf("%d \n", z);
    printf("%f \n", salary);
    printf("%c \n", letter);
    printf("\u02C0\n");
    printf("%o\n", 012);
    printf("%x\n",0x5);
    return 0;
}

结果:

%title插图%num

Posted in C语言

发表评论

相关链接