C++筆記6:數字字面量后綴和前綴總結

在C++中,可以在數字字面量后面添加字母后綴(或前綴)來表示特定的數據類型。這些后綴能夠明確指定字面量的類型,避免類型轉換帶來的潛在問題。以下是常見的幾種類型后綴及其含義:

1. 整數后綴

  • uU:表示 unsigned 類型。
    unsigned int a = 42U;  // 無符號整數
    
  • lL:表示 long 類型(建議使用大寫 L,避免與數字 1 混淆)。
    long b = 1000L;        // long類型
    
  • llLL:表示 long long 類型。
    long long c = 9999999999LL;  // long long類型
    
  • 組合后綴:可以組合使用,如 ULunsigned long)、ULLunsigned long long)。
    unsigned long long d = 18446744073709551615ULL;
    

2. 浮點數后綴

  • fF:表示 float 類型。
    float e = 3.14F;       // float類型(單精度)
    
  • lL:表示 long double 類型。
    long double f = 3.14159265358979L;  // long double類型
    
  • 無后綴:默認是 double 類型。
    double g = 3.14;       // double類型(雙精度)
    

3. 字符和字符串字面量

  • u8:表示 UTF-8 字符串字面量(C++11 起)。
    const char* str = u8"你好";  // UTF-8編碼
    
  • u:表示 char16_t 類型的 Unicode 字符/字符串。
    char16_t c = u'π';       // UTF-16編碼
    
  • U:表示 char32_t 類型的 Unicode 字符/字符串。
    char32_t d = U'🐶';      // UTF-32編碼
    
  • L:表示寬字符/寬字符串(wchar_t 類型)。
    wchar_t wc = L'中';      // 寬字符
    

4. 二進制和十六進制前綴

  • 0b0B:表示二進制字面量(C++14 起)。
    int bin = 0b1010;       // 二進制,等于10
    
  • 0x0X:表示十六進制字面量。
    int hex = 0xFF;         // 十六進制,等于255
    
  • 0:前綴為 0 表示八進制字面量。
    int oct = 010;          // 八進制,等于8
    

示例總結

后綴類型示例
Uunsigned int42U
Llong1000L
LLlong long9999999999LL
ULunsigned long123456789UL
ULLunsigned long long18446744073709551615ULL
Ffloat3.14F
Llong double3.14159265358979L

注意事項

  1. 避免混淆LL 表示 long long,而 l 容易與數字 1 混淆,建議使用大寫 L
  2. 類型范圍:使用后綴可以避免隱式類型轉換導致的溢出問題,例如:
    // 錯誤:默認是int,可能溢出
    long long overflow = 9999999999;  // 未加LL,可能導致溢出// 正確:明確指定為long long類型
    long long correct = 9999999999LL;
    

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/80593.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80593.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/80593.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

50.輻射抗擾RS和傳導抗擾CS測試環境和干擾特征分析

輻射抗擾RS和傳到抗擾CS測試環境和干擾特征分析 1. 輻射抗擾RS2. 傳導抗擾CS 1. 輻射抗擾RS 輻射抗擾RS考察對外界電磁場干擾得抗擾能力,測試頻段為80MHz~2000MHz,用1KHz得正弦波進行調幅,在電波暗室內進行。測試標準:IEC 61000-…

Java多態詳解

Java多態詳解 什么是多態? 比如我們說:“駕駛一輛車”,有人開的是自行車,有人開的是摩托車,有人開的是汽車。雖然我們都說“開車”,但“怎么開”是由具體的車類型決定的:“開”是統一的動作&a…

問題及解決01-面板無法隨著窗口的放大而放大

在MATLAB的App Designer中,默認情況下,組件的位置是固定的,不會隨著父容器的大小變化而改變。問題圖如下圖所示。 解決: 為了讓Panel面板能夠隨著UIFigure父容器一起縮放,需要使用布局管理器,我利用 MATLA…

【GESP真題解析】第 20 集 GESP 二級 2025 年 3 月編程題 2:時間跨越

大家好,我是莫小特。 這篇文章給大家分享 GESP 二級 2025 年 3 月編程題第 2 題:時間跨越。 題目鏈接 洛谷鏈接:B4260 時間跨越 一、完成輸入 根據題意,輸入包含五行,每行一個正整數,分別代表 y,m,d,h,k。 注意到數據范圍:對于全部數據,保證有 2000≤y≤3000,1≤m≤…

GTS-400 系列運動控制器板卡介紹(二十一)---電子齒輪跟隨

運動控制器函數庫的使用 運動控制器驅動程序、dll 文件、例程、Demo 等相關文件請通過固高科技官網下載,網 址為:www.googoltech.com.cn/pro_view-3.html 1 Windows 系統下動態鏈接庫的使用 在 Windows 系統下使用運動控制器,首先要安裝驅動程序。在安裝前需要提前下載運動…

軟件工程之需求分析涉及的圖與工具

需求分析與規格說明書是一項十分艱巨復雜的工作。用戶與分析員之間需要溝通的內容非常的多,在雙方交流信息的過程中很容易出現誤解或遺漏,也可能存在二義性。如何才能更加準確的表達雙方的意思,且清楚明了,繪制各類圖形就顯得非常…

藍橋杯14屆 數三角

問題描述 小明在二維坐標系中放置了 n 個點,他想在其中選出一個包含三個點的子集,這三個點能組成三角形。然而這樣的方案太多了,他決定只選擇那些可以組成等腰三角形的方案。請幫他計算出一共有多少種選法可以組成等腰三角形? 輸…

在Fiddler中添加自定義HTTP方法列并高亮顯示

在Fiddler中添加自定義HTTP方法列并高亮顯示 Fiddler 是一款強大的 Web 調試代理工具,允許開發者檢查和操作 HTTP 流量。一個常見需求是自定義 Web Sessions 列表,添加顯示 HTTP 方法(GET、POST 等)的列,并通過顏色區…

數據庫分庫分表實戰指南:從原理到落地

1. 為什么要分庫分表? 1.1 單庫瓶頸表現 存儲瓶頸:單表數據超過5000萬行,查詢性能急劇下降性能瓶頸:單庫QPS超過5000后響應延遲顯著增加可用性風險:單點故障導致全系統不可用 1.2 突破性優勢 --------------------…

Selenium的driver.get_url 和 手動輸入網址, 并點擊的操作,有什么不同?

我在搞爬取的時候,發現有些網站直接用driver.get(url) 跳轉到目標特定的網址的時候,會被強制跳轉到其他的網址上,但是如果是自己手動,在網址欄那里輸入網址,并點回車,卻能完成跳轉。 這是在使用 Selenium …

Java【06】數組查找(二分查找)、排序(冒泡排序、簡單選擇排序)

1. 數組的操作 1.1 數組的反轉 int[] arrs{3,5,7,8,9}; 編寫程序,讓arrs中的數據進行反轉{9,8,7,5,3} 1.2數組的查找 ① 順序查找 從頭到尾一個一個的找! ② 二分查找 對數組有一個要求:數組必須是有序(大小)的! int num3; int[]…

Redis 基礎詳解:從入門到精通

在當今互聯網應用開發領域,數據存儲與處理的性能和效率至關重要。Redis(Remote Dictionary Server)作為一款開源的、基于內存的鍵值存儲系統,憑借其出色的性能和豐富的功能,被廣泛應用于數據庫、緩存、消息中間件等場景…

圖片轉ICO圖標工具

圖片轉ICO圖標 可批量操作 下載地址: 鏈接:https://pan.quark.cn/s/6312c565ec98 這個工具是一個批量圖片轉ICO圖標的神器,有了它,以后再也不用為ICO格式的轉換煩惱!而且這個軟件特別小巧,完全不用安裝。…

0基礎 | L298N電機驅動模塊 | 使用指南

引言 在嵌入式系統開發中,電機驅動是一個常見且重要的功能。L298N是一款高電壓、大電流電機驅動芯片,廣泛應用于各種電機控制場景,如直流電機的正反轉、調速,以及步進電機的驅動等。本文將詳細介紹如何使用51單片機來控制L298N電…

Flink 系列之十五 - 高級概念 - 窗口

之前做過數據平臺,對于實時數據采集,使用了Flink。現在想想,在數據開發平臺中,Flink的身影幾乎無處不在,由于之前是邊用邊學,總體有點混亂,借此空隙,整理一下Flink的內容&#xff0c…

大疆卓馭嵌入式面經及參考答案

FreeRTOS 有哪 5 種內存管理方式? heap_1.c:這種方式簡單地在編譯時分配一塊固定大小的內存,在整個運行期間不會進行內存的動態分配和釋放。它適用于那些對內存使用需求非常明確且固定,不需要動態分配內存的場景,優點是…

Java 線程池原理

Java 線程池是一種管理和復用線程的機制,其原理如下: 核心概念 線程池的初始化 :在創建線程池時,需要設置一些關鍵參數,如核心線程數(corePoolSize)、最大線程數(maximumPoolSize&am…

大模型都有哪些超參數

大模型的超參數是影響其訓練效果、性能和泛化能力的關鍵設置,可分為以下幾大類別并結合實際應用進行詳細說明: 一、訓練過程相關超參數 學習率(Learning Rate) 作用:控制參數更新的步長,直接影響收斂速度和穩定性。過高會導致震蕩或過擬合,過低則收斂緩慢。調整策略:初…

路由器斷流排查終極指南:從Ping測試到Wireshark抓包5步定位法

測試路由器是否出現“斷流”(網絡連接間歇性中斷),需通過多維度排查硬件、軟件及外部干擾因素。以下是詳細步驟指南: 一、基礎環境準備 設備連接 有線測試:用網線將電腦直接連接路由器LAN口,排除WiFi干擾。…

低代碼開發:開啟軟件開發的新篇章

摘要 低代碼開發作為一種新興的軟件開發方式,正在迅速改變傳統軟件開發的模式和效率。它通過可視化界面和預設的模板,使非專業開發者也能夠快速構建應用程序,極大地降低了開發門檻和成本。本文將深入探討低代碼開發的定義、優勢、應用場景以及…