C++入門【6-C++ 修飾符類型】

C++?修飾符類型

C++ 允許在?char、int 和 double?數據類型前放置修飾符。

修飾符是用于改變變量類型的行為的關鍵字,它更能滿足各種情境的需求。

下面列出了數據類型修飾符:

  • signed:表示變量可以存儲負數。對于整型變量來說,signed 可以省略,因為整型變量默認為有符號類型。
  • unsigned:表示變量不能存儲負數。對于整型變量來說,unsigned 可以將變量范圍擴大一倍。
  • short:表示變量的范圍比 int 更小。short int 可以縮寫為 short。
  • long:表示變量的范圍比 int 更大。long int 可以縮寫為 long。
  • long long:表示變量的范圍比 long 更大。C++11 中新增的數據類型修飾符。
  • float:表示單精度浮點數。
  • double:表示雙精度浮點數。
  • bool:表示布爾類型,只有 true 和 false 兩個值。
  • char:表示字符類型。
  • wchar_t:表示寬字符類型,可以存儲 Unicode 字符。

修飾符?signed、unsigned、long 和 short?可應用于整型,signed?和?unsigned?可應用于字符型,long?可應用于雙精度型。

這些修飾符也可以組合使用,修飾符?signed?和?unsigned?也可以作為?long?或?short?修飾符的前綴。例如:unsigned long int。

C++ 允許使用速記符號來聲明無符號短整數或無符號長整數。您可以不寫 int,只寫單詞?unsigned、short?或?long,int?是隱含的。例如,下面的兩個語句都聲明了無符號整型變量。

signed int num1 = -10; // 定義有符號整型變量 num1,初始值為 -10

unsigned int num2 = 20; // 定義無符號整型變量 num2,初始值為 20

short int num1 = 10; // 定義短整型變量 num1,初始值為 10

long int num2 = 100000; // 定義長整型變量 num2,初始值為 100000

long long int num1 = 10000000000; // 定義長長整型變量 num1,初始值為 10000000000

float num1 = 3.14f; // 定義單精度浮點數變量 num1,初始值為 3.14

double num2 = 2.71828; // 定義雙精度浮點數變量 num2,初始值為 2.71828

bool flag = true; // 定義布爾類型變量 flag,初始值為 true

char ch1 = 'a'; // 定義字符類型變量 ch1,初始值為 'a'

wchar_t ch2 = L'你'; // 定義寬字符類型變量 ch2,初始值為 '你'

為了理解 C++ 解釋有符號整數和無符號整數修飾符之間的差別,我們來運行一下下面這個短程序:

#include <iostream>
using namespace std;/* * 這個程序演示了有符號整數和無符號整數之間的差別
*/
int main()
{short int i;           // 有符號短整數short unsigned int j;  // 無符號短整數j = 50000;i = j;cout << i << " " << j;return 0;
}

當上面的程序運行時,會輸出下列結果:

-15536 50000

上述結果中,無符號短整數 50,000 的位模式被解釋為有符號短整數 -15,536。

C++ 中的類型限定符

類型限定符提供了變量的額外信息,用于在定義變量或函數時改變它們的默認行為的關鍵字。

限定符

含義

const

const

定義常量,表示該變量的值不能被修改。

volatile

修飾符

volatile

告訴該變量的值可能會被程序以外的因素改變,如硬件或其他線程。。

restrict

restrict

修飾的指針是唯一一種訪問它所指向的對象的方式。只有 C99 增加了新的類型限定符 restrict。

mutable

表示類中的成員變量可以在 const 成員函數中被修改。

static

用于定義靜態變量,表示該變量的作用域僅限于當前文件或當前函數內,不會被其他文件或函數訪問。

register

用于定義寄存器變量,表示該變量被頻繁使用,可以存儲在CPU的寄存器中,以提高程序的運行效率。

const 實例

const int NUM = 10; // 定義常量 NUM,其值不可修改

const int* ptr = &NUM; // 定義指向常量的指針,指針所指的值不可修改

int const* ptr2 = &NUM; // 和上面一行等價

volatile 實例

volatile int num = 20; // 定義變量 num,其值可能會在未知的時間被改變

mutable 實例

class Example {
public:int get_value() const {return value_; // const 關鍵字表示該成員函數不會修改對象中的數據成員}void set_value(int value) const {value_ = value; // mutable 關鍵字允許在 const 成員函數中修改成員變量}
private:mutable int value_;
};

static 實例

void example_function() {static int count = 0; // static 關鍵字使變量 count 存儲在程序生命周期內都存在count++;
}

register 實例

void example_function(register int num) {// register 關鍵字建議編譯器將變量 num 存儲在寄存器中// 以提高程序執行速度// 但是實際上是否會存儲在寄存器中由編譯器決定
}

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

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

相關文章

12月11日作業

完善對話框&#xff0c;點擊登錄對話框&#xff0c;如果賬號和密碼匹配&#xff0c;則彈出信息對話框&#xff0c;給出提示登錄成功&#xff0c;提供一個Ok按鈕&#xff0c;用戶點擊Ok后&#xff0c;關閉登錄界面&#xff0c;跳轉到其他界面 如果賬號和密碼不匹配&#xff0c;彈…

被迫搬家,寬帶遷移怎么辦?

廣州一棟違建爛尾樓&#xff0c;13年里從未停止出租&#xff0c;年年住滿人。這棟樓沒有貼外墻&#xff0c;裸露的水泥表面都被雨水腐蝕&#xff0c;很多陽臺沒有建好&#xff0c;只是簡單加裝了護欄&#xff0c;存在巨大安全隱患。 為什么爛尾樓年年滿人呢&#xff1f; 因為它…

算法:快速冪ksm

為什么使用快速冪&#xff1a; 假設題目要求求a的b次方。 c/c里并沒有^運算符&#xff0c;所以我們第一時間可能想到使用for循環&#xff0c;將“a * a”語句循環b次。但是這樣時間復雜度為O(n),所以當b過大的時候&#xff0c;我們的程序將會非常慢&#xff0c;所以我們需要使用…

基于ssm樂購游戲商城系統論文

摘 要 隨著社會的發展&#xff0c;游戲品種越來越多&#xff0c;計算機的優勢和普及使得樂購游戲商城系統的開發成為必需。樂購游戲商城系統主要是借助計算機&#xff0c;通過對信息進行管理。減少管理員的工作&#xff0c;同時也方便廣大用戶對個人所需信息的及時查詢以及管理…

基于深度學習的yolov5入侵檢測系統

歡迎大家點贊、收藏、關注、評論啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代碼。 文章目錄 一項目簡介IntroductionYOLOv5 Overview入侵檢測系統架構1. 數據采集2. YOLOv5模型訓練3. 實時監測4. 告警與反饋 性能評估與優化 二、功能三、系統四. 總結 一項目簡…

Huawei Auth-HTTP Server 1.0 存在任意文件讀取漏洞 附POC軟件

@[toc] Huawei Auth-HTTP Server 1.0 存在任意文件讀取漏洞 附POC 免責聲明:請勿利用文章內的相關技術從事非法測試,由于傳播、利用此文所提供的信息或者工具而造成的任何直接或者間接的后果及損失,均由使用者本人負責,所產生的一切不良后果與文章作者無關。該文章僅供學…

【精華帖】發布你造的輪子 -- 創建Nuget包(分布操作)

目錄 1、您的項目 2、創建 .nuspec 文件 3、一張圖片勝過一千個拉取請求 4、包括自述文件 MD 文件 5、構建軟件包 6、將包部署到 Nuget.Org

視頻中自監督學習:「我的世界」下指令理解與跟隨

本文介紹了北京大學人工智能研究院梁一韜助理教授所帶領的 CraftJarvis 團隊在「我的世界」環境下探索通用智能體設計的新進展&#xff0c;題為“GROOT: Learning to Follow Instructions by Watching Gameplay Videos”。 ? GROOT 該研究的核心目標是探索能否擺脫文本數據的標…

【NR技術】NR NG-RAN整體架構 -網絡接口以及無線協議框架(四)

1 引言 本博文介紹NR NG-RAN的網絡節點間的接口以及無線協議框架。網絡接口介紹包括RAN和NGC之間的NG接口&#xff1b;無線協議框架包括用戶面和控制面協議。 2 NG接口 2.1 NG用戶面接口 NG-U (user plane interface)是NG-RAN節點與UPF之間的接口。NG接口的用戶平面協議棧如圖…

AutoGen實戰應用(一):代碼生成、執行和調試

AutoGen 是一個支持使用多個代理來開發大型語言模型(LLM) 應用程序的框架&#xff0c;這些代理采樣相互對話的方式來解決人類交給的任務。AutoGen 代理是可定制的、可對話的&#xff0c;并且無縫地允許人類參與。他們采用LLM、人類輸入和各種工具組合的各種運作模式。 AutoGen …

二分查找25(Leetcode1498滿足條件的子序列數目)

代碼&#xff1a; 這道題不能用Math.pow 精度不夠 得自己寫個數組存2的n次方 class Solution {public int numSubseq(int[] nums, int target) {int mod 1000000007;int n nums.length;System.out.println(n);int[] f new int[100005];f[0]1;for(int i1;i<f.length;i){…

docker 安裝mysql 主從復制

一、搭建主服務器的mysql 1.1 先新建文件夾 mkdir -p /data/dockerData/mysql-master/conf 1.2 進入/data/dockerData/mysql-master/conf目錄下新建my.config, [mysqld] ## 設置server_id&#xff0c;同一局域網中需要唯一 server_id101 ## 指定不需要同步的數據庫名稱 bin…

論文閱讀《High-frequency Stereo Matching Network》

論文地址&#xff1a;https://openaccess.thecvf.com/content/CVPR2023/papers/Zhao_High-Frequency_Stereo_Matching_Network_CVPR_2023_paper.pdf 源碼地址&#xff1a; https://github.com/David-Zhao-1997/High-frequency-Stereo-Matching-Network 概述 在立體匹配研究領域…

web漏洞原理與防御策略,web漏洞怎么挖掘

目錄 Web安全的重要性 ?編輯常見的Web漏洞類型及其原理&#xff1a; 1、跨站腳本攻擊&#xff08;XSS&#xff09;: 2、SQL注入: 3、跨站請求偽造&#xff08;CSRF&#xff09;: 4、遠程文件包含&#xff08;RFI&#xff09;和本地文件包含&#xff08;LFI&#xff09;:…

Spring Boot實現接口冪等

Spring Boot實現接口冪等 1、pom依賴 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:…

大創項目推薦 協同過濾電影推薦系統

文章目錄 1 簡介1 設計概要2 課題背景和目的3 協同過濾算法原理3.1 基于用戶的協同過濾推薦算法實現原理3.1.1 步驟13.1.2 步驟23.1.3 步驟33.1.4 步驟4 4 系統實現4.1 開發環境4.2 系統功能描述4.3 系統數據流程4.3.1 用戶端數據流程4.3.2 管理員端數據流程 4.4 系統功能設計 …

【軟件安裝】VMware安裝Centos7虛擬機并且設置靜態IP,實現Windows和Centos7網絡互相訪問

這篇文章&#xff0c;主要介紹VMware安裝Centos7虛擬機并且設置靜態IP&#xff0c;實現Windows和Centos7網絡互相訪問。 目錄 一、VMware安裝Centos7 1.1、下載Centos7鏡像 1.2、安裝Centos7系統 二、設置靜態IP地址 2.1、查看虛擬機網絡IP 2.2、禁用NetworkManager服務 …

每天五分鐘計算機視覺:VGG網絡相對于AlexNet網絡有哪些不同?

本文重點 在前面的課程中&#xff0c;我們已經學習了VGG網絡模型&#xff0c;也學習了AlexNet網絡模型&#xff0c;AlexNet模型先于VGG網絡模型產生&#xff0c;所以VGG在一定程度上要優于AlexNet模型&#xff0c;二者來看一下&#xff0c;二者究竟有什么不同&#xff1f; 深度…

Qt的坐標系系統 - 3個坐標系,2個變換

參考&#xff1a; https://zhuanlan.zhihu.com/p/584048811https://www.zhihu.com/tardis/zm/art/634951149?source_id1005 小談Qt的坐標系系統 Qt中有三個坐標系 設備坐標系窗口坐標系邏輯坐標系 設備坐標系: 即Device坐標系。也是物理坐標系。即真實的的物理坐標系。 …

給鼠標描述符打上注釋防止忘記

static uint8_t g_mouse_hid_desc[] { //通用桌面設備 0x05, 0x01, // USAGE_PAGE (Generic Desktop) //鼠標設備 0x09, 0x02, // USAGE (Mouse) //應用集合 0xa1, 0x01, // COLLECTION (Application) //指針設備 0x09, 0x01, // USAGE (Pointer) //物理集合 0xa1, 0x00, // C…