欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C/C++之字面量詳解(代碼中的固定值,用于表示各種數(shù)據(jù)類型的常量)

 更新時間:2025年09月18日 16:51:01   作者:MzKyle  
C++字面量是直接表示常量的固定值,涵蓋整型、浮點、字符、字符串、布爾、指針等類型,支持多進制、后綴及轉(zhuǎn)義,用戶定義字面量(C++11+)提供自定義解析方式,類型推導(dǎo)自動確定類型以避免隱式轉(zhuǎn)換和溢出問題

在C++中,字面量(Literal) 是直接出現(xiàn)在代碼中的固定值,用于表示各種數(shù)據(jù)類型的常量。它們可以是數(shù)字、字符、字符串、布爾值或特殊類型的值。

1. 整型字面量(Integer Literals)

用于表示整數(shù),支持多種進制和類型后綴:

進制表示

  • 十進制:普通數(shù)字(無前綴),如 42、100。
  • 八進制:以 0 開頭,如 012 表示十進制的 10。
  • 十六進制:以 0x0X 開頭,如 0xFF 表示十進制的 255
  • 二進制(C++14+):以 0b0B 開頭,如 0b1010 表示十進制的 10

類型后綴

  • uUunsigned 類型,如 42U。
  • lLlong 類型,如 100L。
  • llLLlong long 類型,如 9999999999LL。
  • ulULunsigned long 類型,如 1000000UL。

示例

int decimal = 42;       // 十進制
int octal = 012;        // 八進制,等于十進制10
int hex = 0xFF;         // 十六進制,等于十進制255
int binary = 0b1010;    // 二進制,等于十進制10
unsigned long large = 1234567890UL;  // unsigned long類型

2. 浮點型字面量(Floating-Point Literals)

用于表示小數(shù),支持兩種表示方式和類型后綴:

表示方式

  • 小數(shù)形式:如 3.14、0.5、.25(等價于 0.25)。
  • 指數(shù)形式:使用 eE 表示科學(xué)計數(shù)法,如 1.23e5 表示 1.23×10?(即 123000)。

類型后綴

  • fFfloat 類型,如 3.14F。
  • lLlong double 類型,如 3.14L

示例

double pi = 3.14;       // double類型
float pi_f = 3.14F;     // float類型
long double big = 1.23e100L;  // long double類型

3. 字符字面量(Character Literals)

用于表示單個字符,用單引號 ' 包圍:

  • 普通字符:如 'a'、'0'、'$'。
  • 轉(zhuǎn)義字符:以反斜杠 \ 開頭,如 '\n'(換行符)、'\t'(制表符)、'\''(單引號)。

Unicode字符(C++11+):

  • u8'x':UTF-8編碼,類型為 char
  • u'x':UTF-16編碼,類型為 char16_t。
  • U'x':UTF-32編碼,類型為 char32_t
  • L'x':寬字符,類型為 wchar_t。

示例

char c = 'A';           // 普通字符
char newline = '\n';    // 換行符
char16_t euro = u'€';   // UTF-16編碼的歐元符號

4. 字符串字面量(String Literals)

用于表示文本,用雙引號 " 包圍:

  • 普通字符串:如 "Hello"、"123"
  • 轉(zhuǎn)義字符:與字符字面量相同,如 "Hello\nWorld"。
  • 原始字符串(C++11+):用 R"(...)" 表示,無需轉(zhuǎn)義特殊字符,如 R"(C:\path\to\file)"。

Unicode字符串

  • u8"text":UTF-8編碼,類型為 const char*。
  • u"text":UTF-16編碼,類型為 const char16_t*。
  • U"text":UTF-32編碼,類型為 const char32_t*。
  • L"text":寬字符,類型為 const wchar_t*。

示例

const char* str = "Hello";           // 普通字符串
const char* path = R"(C:\Users\Doc)"; // 原始字符串
const char16_t* utf16 = u"你好";      // UTF-16編碼的字符串

5. 布爾字面量(Boolean Literals)

表示邏輯值,只有兩個:

  • true:真。
  • false:假。

示例

bool isReady = true;
bool isValid = false;

6. 指針字面量(Pointer Literals)

表示空指針:

  • nullptr(C++11+):類型安全的空指針常量,類型為 std::nullptr_t。
  • NULL:傳統(tǒng)的空指針宏,通常定義為 0(void*)0。

示例

int* ptr = nullptr;  // C++11及以后推薦使用nullptr

7. 用戶定義字面量(User-Defined Literals, C++11+)

允許自定義字面量的解析方式,通過重載后綴運算符實現(xiàn)。標(biāo)準(zhǔn)庫中也有一些預(yù)定義的UDL,例如:

  • 時間單位1h(1小時)、30min(30分鐘)、45s(45秒)。
  • 字符串轉(zhuǎn)換"hello"s 表示 std::string 類型(需包含 <string>)。

示例

#include <iostream>
#include <string>

using namespace std::literals;

int main() {
    auto str = "hello"s;  // std::string類型
    auto duration = 2h + 30min;  // std::chrono::duration類型
    std::cout << str.length() << std::endl;
    return 0;
}

8. 字面量的類型推導(dǎo)

編譯器會根據(jù)字面量的形式和后綴自動推導(dǎo)其類型:

  • 42:默認(rèn) int,若超出 int 范圍則為 longlong long。
  • 3.14:默認(rèn) double。
  • 'a'char 類型。
  • "hello"const char[6] 類型(包含終止符 '\0')。

字面量是C++中表示常量值的基本方式,不同類型的字面量有不同的語法和用途。

理解字面量的類型和后綴有助于避免隱式類型轉(zhuǎn)換和溢出問題,尤其是在處理大數(shù)或高精度計算時。

用戶定義字面量則提供了強大的擴展能力,使代碼更具表達力。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++異常處理方式實例詳解(超級詳細(xì)!)

    C++異常處理方式實例詳解(超級詳細(xì)!)

    程序有時會遇到運行階段錯誤,導(dǎo)致程序無法正常執(zhí)行下去,c++異常為處理這種情況提供了一種功能強大的而靈活的工具,下面這篇文章主要給大家介紹了關(guān)于C++異常處理方式的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • C++編程中break語句和continue語句的學(xué)習(xí)教程

    C++編程中break語句和continue語句的學(xué)習(xí)教程

    這篇文章主要介紹了C++編程中break語句和continue語句的學(xué)習(xí)教程,break和continue是C++循環(huán)控制中的基礎(chǔ)語句,需要的朋友可以參考下
    2016-01-01
  • 使用C語言計算長方體的表面積和體積

    使用C語言計算長方體的表面積和體積

    這篇文章主要給大家介紹了關(guān)于如何使用C語言計算長方體的表面積和體積的相關(guān)資料,在C語言中,我們可以使用乘法運算符(*)來進行乘法運算,并將結(jié)果保存在一個變量中,需要的朋友可以參考下
    2023-10-10
  • C++實現(xiàn)趣味掃雷游戲

    C++實現(xiàn)趣味掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)趣味掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C語言sqrt函數(shù)的實例用法講解

    C語言sqrt函數(shù)的實例用法講解

    在本篇文章里小編給大家整理的是關(guān)于C語言sqrt函數(shù)的實例內(nèi)容以及用法詳解,需要的朋友們可以參考下。
    2020-02-02
  • C++ pair方法與vector方法案例詳解

    C++ pair方法與vector方法案例詳解

    這篇文章主要介紹了C++ pair方法與vector方法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • C語言算法練習(xí)之?dāng)?shù)組求素數(shù)

    C語言算法練習(xí)之?dāng)?shù)組求素數(shù)

    這篇文章主要為大家介紹了C語言算法練習(xí)中數(shù)組求素數(shù)的實現(xiàn)方法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C語言有一定幫助,需要的可以參考一下
    2022-09-09
  • 詳解QT使用http通信的同步和異步

    詳解QT使用http通信的同步和異步

    在Qt與Http通信的時候,會根據(jù)不同的情況使用同步或者異步的方式進行數(shù)據(jù)請求,下面我們就來深入了解一下http通信的同步和異步的相關(guān)知識,感興趣的小伙伴可以了解下
    2023-12-12
  • C++?實現(xiàn)讀寫鎖的代碼詳解

    C++?實現(xiàn)讀寫鎖的代碼詳解

    C++讀寫鎖是一種多線程同步機制,它允許多個線程同時讀取共享數(shù)據(jù),但只允許一個線程寫入共享數(shù)據(jù),這種鎖可以提高程序的并發(fā)性和性能,本文給大家介紹了C++?實現(xiàn)讀寫鎖的代碼,需要的朋友可以參考下
    2023-10-10
  • C++ 兩個vector對象拼接方式

    C++ 兩個vector對象拼接方式

    這篇文章主要介紹了C++ 兩個vector對象拼接方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評論