分配给每个常量变量的值称为字面量。通常,术语,常量和字面量均可互换使用。例如,“ const int = 5;”是一个常量表达式,值5称为常量整数字面量。有四种类型用C字面量和五种类型在C++中字面量的。
C / C++的字面量被相应地划分为:
- 整数字面量:用于表示和存储整数值。整数字面量有两种类型,即
- 前缀:整数字面量的前缀指示将在其中读取的基础。
例如:0x10 = 16 Because 0x prefix represents a HexaDecimal base. So 10 in HexaDecimal is 16 in Decimal. Hence the value 16.
基本上有四种代表。
- 十进制数(以10为基数):一个非零的十进制数字,后跟零个或多个十进制数字(0、1、2、3、4、5、6、7、8、9)。
例如:
56, 78
- 八进制数(以8为底): 0后接零个或多个八进制数字(0、1、2、3、4、5、6、7)。
例如:
045, 076, 06210
- 十六进制数(以16为基数): 0x或0X,后跟一个或多个十六进制数字(0、1、2、3、4、5、6、7、8、9,a,b,b,c,c ,d,D,e,E,f,F)。
例如:
0x23A, 0Xb4C, 0xFEA
- Binary-literal(base 2): 0b或0B,后跟一个或多个二进制数字(0,1)。
例如:
0b101, 0B111
- 十进制数(以10为基数):一个非零的十进制数字,后跟零个或多个十进制数字(0、1、2、3、4、5、6、7、8、9)。
- 后缀:整数字面量的前缀表示要读取的类型。
例如:
12345678901234LL indicates a long long integer value 12345678901234 because of the suffix LL
这些根据其数据类型以多种方式表示。
- int:不需要后缀,因为默认情况下将整数常量指定为int数据类型。
- unsigned int:整数常量末尾的字符u或U。
- long int:整数常数末尾的字符l或L。
- unsigned long int:整数常量末尾的字符ul或UL。
- long long int:整数常数末尾的字符ll或LL。
- unsigned long long int:整数常量末尾的字符ull或ULL。
例子:
C
#include
int main() { // constant integer literal const int intVal = 10; printf("Integer Literal:%d \n", intVal); return 0; }
C++
#include
using namespace std; int main() { // constant integer literal const int intVal = 10; cout << "Integer Literal: " << intVal << "\n"; return 0; }
C
#include
int main() { // constant float literal const float floatVal = 4.14; printf("Floating point literal: %.2f\n", floatVal); return 0; }
C++
#include
using namespace std; int main() { // Real literal const float floatVal = 4.14; cout << "Floating-point literal: " << floatVal << "\n"; return 0; }
C
#include
int main() { // constant char literal const char charVal = 'A'; printf("Character Literal: %c\n", charVal); return 0; }
C++
#include
using namespace std; int main() { // constant char literal const char charVal = 'A'; // wide char literal const wchar_t charVal1 = L'A'; cout << "Character Literal: " << charVal << "\n"; cout << "Wide_Character Literal: " << charVal1 << "\n"; return 0; }
C
#include
int main() { const char str[] = "Welcome\nTo\nGeeks\tFor\tGeeks"; printf("%s", str); return 0; }
C++
#include
using namespace std; int main() { const string str = "Welcome\nTo\nGeeks\tFor\tGeeks"; cout << str; return 0; }
输出:Integer Literal:10
- 前缀:整数字面量的前缀指示将在其中读取的基础。
- 浮点字面量:这些用于表示和存储实数。实数具有整数部分,实数部分,小数部分和指数部分。浮点字面量可以以十进制或指数形式存储。在表示浮点小数时,必须记住两点以产生有效的字面量:
- 在十进制形式中,必须包含小数点,指数部分或两者,否则会导致错误。
- 在指数形式中,必须包含整数部分,小数部分或两者,否则将导致错误。
浮点字面量表示法很少显示如下:
有效的浮动字面量:
10.125 1.215-10L 10.5E-3
无效的浮动字面量:
123E 1250f 0.e879
例子:
C
#include
int main() { // constant float literal const float floatVal = 4.14; printf("Floating point literal: %.2f\n", floatVal); return 0; } C++
#include
using namespace std; int main() { // Real literal const float floatVal = 4.14; cout << "Floating-point literal: " << floatVal << "\n"; return 0; } 输出:Floating point literal: 4.14
- 字符字面量:这是指用于在单引号内存储单个字符的字面量。要存储多个字符,需要使用一个字符数组。在单引号中存储多个字符将引发警告,并仅显示字面量的最后一个字符。它产生以下两种表示形式:
- char类型:用于存储普通字符字面量或窄字符字面量。 C和C++都支持此功能。
例子:
// For C char chr = 'G'; // For C++ char chr = 'G';
- wchar_t类型:仅在C++中支持此字面量,而在C中不支持。如果字符后跟L,则字面量必须存储在wchar_t中。这代表宽字符字面量。
例子:
// Not Supported For C // For C++ wchar_t chr = L'G';
例子:
C
#include
int main() { // constant char literal const char charVal = 'A'; printf("Character Literal: %c\n", charVal); return 0; } C++
#include
using namespace std; int main() { // constant char literal const char charVal = 'A'; // wide char literal const wchar_t charVal1 = L'A'; cout << "Character Literal: " << charVal << "\n"; cout << "Wide_Character Literal: " << charVal1 << "\n"; return 0; } 输出:Character Literal: A
转义序列:有多种特殊字符可用于执行各种操作。
- char类型:用于存储普通字符字面量或窄字符字面量。 C和C++都支持此功能。
- 字符串字面量:字符串字面量与字符字面量相似,不同之处在于它可以存储多个字符并使用双引号存储相同的字符。它还可以容纳上表中提到的特殊字符和转义序列。
例子:
// For C char stringVal[] = "GeeksforGeeks"; // For C++ string stringVal = "GeeksforGeeks"
例子:
C
#include
int main() { const char str[] = "Welcome\nTo\nGeeks\tFor\tGeeks"; printf("%s", str); return 0; } C++
#include
using namespace std; int main() { const string str = "Welcome\nTo\nGeeks\tFor\tGeeks"; cout << str; return 0; } 输出:Welcome To Geeks For Geeks
- 布尔字面量:此字面量仅在C++中提供,而在C中不提供。它们用于表示布尔数据类型。这些可以带有两个值:
- true:表示真实值。不能认为它等于int 1。
- false:表示False值。不得将其视为等于int 0。
例子:
// C++ program to show Boolean literals #include
using namespace std; int main() { const bool isTrue = true; const bool isFalse = false; cout << "isTrue? " << isTrue << "\n"; cout << "isFalse? " << isFalse << "\n"; return 0; } 输出:isTrue? 1 isFalse? 0
有关C / C++中的常量/字面量的相关文章:
- 用户定义的字面量。
- C++中的原始字符串字面量
- C中的八进制字面量
- C中的复合字面量
- 字符字面量C++的类型差异。
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。