C - 常量和文字

常量是指程序在执行期间不会改变的固定值.这些固定值也称为文字.

常量可以是任何基本数据类型,如整数常量,浮点常量,字符常量或字符串文字.还有枚举常量.

常量被视为常规变量,除了它们的值在定义之后无法修改.

整数文字

整数文字可以是十进制,八进制或十六进制常量.前缀指定基数或基数:十六进制为0x或0X,八进制为0,十进制不为.

整数文字也可以有一个后缀,即U和L的组合,对于无符号和长,分别.后缀可以是大写或小写,可以是任何顺序.

以下是整数文字的一些示例 :

 
 212/* Legal */
 215u/* Legal */
 0xFeeL/* Legal */
 078/*非法:8不是八进制数字*/
 032UU/*非法:不能重复后缀*/

以下是各种类型的整数文字的其他示例 :

 
 85/*十进制*/
 0213/*八进制*/
 0x4b/*十六进制*/
 30/* int */
 30u/* unsigned int */
 30l/* long */
 30ul/* unsigned long */

浮点文字

浮点文字有一个整数部分,一个小数点,一个小数部分和一个指数部分.您可以以十进制形式或指数形式表示浮点文字.

在表示小数形式时,必须包括小数点,指数或两者;并且在表示指数形式时,必须包括整数部分,小数部分或两者.带符号的指数由e或E引入.

以下是浮点文字的一些示例 :

 
 3.14159/* Legal */
 314159E-5L/* Legal */
 510E/*非法:指数不完整*/
 210f/*非法:无小数或指数*/
 .e55/*非法:缺少整数或分数*/

字符常量

包含字符文字在单引号中,例如,'x'可以存储在 char 类型的简单变量中.

字符文字可以是普通字符(例如' x'),一个转义序列(例如,'\ t'),或一个通用字符(例如,'\ u02C0').

C中有某些字符代表以反斜杠开头的特殊含义,例如换行符(\ n)或制表符(\ t).

Escape sequenceMeaning
\\\ character
\'' character
" character
\?? character
\aAlert or bell
\bBackspace
\fForm feed
\nNewline
\rCarriage return
\tHorizontal tab
\vVertical tab
\oooOctal number of one to three digits
\xhh . . .Hexadecimal number of one or more digits

以下示例显示一些转义序列字符 :

#include <stdio.h>

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

   return 0;
}

编译并执行上述代码时,会产生以下结果 :

 
 Hello World

字符串文字

字符串文字或常量包含在双引号 "".字符串包含与字符文字类似的字符:普通字符,转义序列和通用字符.

您可以使用字符串文字将长行分成多行并使用空格分隔它们.

以下是字符串文字的一些示例.所有三种形式都是相同的字符串.

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"

定义常数

C中有两种简单的方法来定义常量;

  • 使用 #define 预处理器.

  • 使用 const 关键字.

#define预处理器

下面给出了使用#define预处理器定义常量 :

#define identifier value

以下示例详细说明 :

#include <stdio.h>

#define LENGTH 10   
#define WIDTH  5
#define NEWLINE '\n'

int main() {
   int area;  
  
   area = LENGTH * WIDTH;
   printf("value of area : %d", area);
   printf("%c", NEWLINE);

   return 0;
}

编译并执行上述代码时,会产生以下结果 :

value of area : 50

const关键字

您可以使用 const 前缀用于声明具有特定类型的常量,如下所示 :

 
 const type variable = value;

以下示例详细说明 :

#include <stdio.h>

int main() {
   const int  LENGTH = 10;
   const int  WIDTH = 5;
   const char NEWLINE = '\n';
   int area;  
   
   area = LENGTH * WIDTH;
   printf("value of area : %d", area);
   printf("%c", NEWLINE);

   return 0;
}

编译并执行上述代码时,会产生以下结果 :

value of area : 50

请注意,在CAPITALS中定义常量是一种很好的编程习惯.