c++中什么是字面常量?
发布网友
发布时间:2022-04-21 11:01
我来回答
共4个回答
热心网友
时间:2023-08-25 14:48
常量(constant)可以理解为所谓的字面值,常量和用const修饰的变量并不是一个概念。
比如有语句如下:
view plaincopy
int a = 1234;
那么语句中的int就是数据类型,a是变量,1234是字面值。int的字面值也就是可以用来初始化int类型变量的东西(不要说用其他变量也可以初始化哦!)。
同样,char的字面值当然是机器的ASCII字符集了,分为可见的和不可见的字符,表示方法有两种,见下面程序:
#include <stdio.h>
int main(void)
{
/* 整形常量(字面值) */
// 十进制表示
int in = 1234;
long ln = 1234L;
unsigned int uin = 1234u;
unsigned long uln = 1234UL;
// 十六进制表示
in = 0xabul;
// 八进制表示
in = 0123ul;
// 没有后缀表示某整形常量为short
/* 字符常量(字面值) */
// 普通表示
char c = 'x';
// 用转义序列表示
c = '\n';
c = '\100'; // 1-3位八进制数
c = '\x4a'; // 1-2位十六进制数
/*
* 所有转义序列
* -----------------
* \a(对应ASCII表中值为7的字符(响铃))
* \b(值为8(退格))
* \f \'
* \n \"
* \r \\
* \t \?
* \v \ooo \xhh
* -----------------
* 特别的,转义序列'\ooo'对应ASCII表中值为0ooo(八进制)的字符,
* '\xhh'对应表中值为0xhh(十六进制)的字符。
*/
/* 浮点型常量(字面值) */
float f = -12.34e-1f; // float
double df = 1234.56; // double
long double ldf = 1234.56L; // long double
/* 字符串常量(字面值) */
/* 枚举常量 */
enum Month_t
{
JAN = 1, FEB, MAR, APR, MAY, JUN,
JUL, AUG, SEP, OCT, NOV, DEC
};
enum Month_t m = MAR; // c编译器不检查,c++编译器会检查
return 0;
}
热心网友
时间:2023-08-25 14:49
常量就相当于1,2,3
变量就是,a,b,c
可以有a=3,a=4;
但不能有1=2,1=3,这样的语句. do you understand?
const a=2;
这时候a和2的性质一样任何地方都不能更改.
热心网友
时间:2023-08-25 14:49
我想可能是这些写书的用翻译机翻译的吧。
估计 "字面值常量" 对应的意思是 char constant. 字符型常量。
char const a = 'x';
热心网友
时间:2023-08-25 14:50
从字面形式即可识别(其数据类型)的常量.