c++數據

来源:https://www.cnblogs.com/liangsong/archive/2018/12/19/10145493.html
-Advertisement-
Play Games

1.變數名 命名規則: 在名稱中只能使用字母字元、數字和下劃線; 名稱的第一個字元不能是數字; 不能將C++關鍵詞用作名稱。 常用的首碼:n-整數,str/sz-字元串,b-布爾值,p-指針,c-單個字元,m-類成員值 2.整形 short 至少16位; int至少與short一樣長; long至少 ...


1.變數名

  命名規則:

  • 在名稱中只能使用字母字元、數字和下劃線;
  • 名稱的第一個字元不能是數字;
  • 不能將C++關鍵詞用作名稱。

  常用的首碼:n-整數,str/sz-字元串,b-布爾值,p-指針,c-單個字元,m-類成員值

2.整形

  • short 至少16位;
  • int至少與short一樣長;
  • long至少32位,且至少與int一樣長;
  • long long至少64位,且至少與long一樣長。

3.無符號類型

  當數值不會為負時,使用無符號類型,如人口等。要創建無符號版本的基本整型,只需要使用關鍵字unsigned來修改聲明即可。如果short的表示範圍為-32768到+32767,那麼無符號版本的表示範圍為0-65535,可見其優點是可以增大變數能夠存儲的最大值。

  類型如何選擇:

  • 若變數表示的值不可能為負,則可以使用無符號類型,這樣變數可以表示更大的值;
  • 若知道變數可能表示的整數值大於16位整數的最大可能值,則使用long。即使系統上int為32位,也要這樣做。如果要存儲的值超過20億,可使用long long。
  • 若short比int小,則使用short可以節省記憶體。通常,僅當有大型整型數組時,才有必要使用short。如果節省記憶體很重要,則應使用short而不是使用int。例如,若將程式從int為16位的系統移到int為32位的系統,則用於存儲int數組的記憶體量將加倍,但short數組不受影響。

  與int不同的是,char在預設情況下既不是沒有符號,也不是有符號。如果char有某種特定的行為非常重要,則可以顯式地將類型設置為signed char或unsigned char

4.const

一種常見的做法是將變數名稱的首字母大寫,以提醒這個變數是常量。或將整個變數名稱大寫,使用#define創建常量時通常使用這種約定 。

 

下表列出了七種基本的 C++ 數據類型:

布爾型 bool
字元型 char
整型 int
浮點型 float
雙浮點型 double
無類型 void
寬字元型 wchar_t

 

 

 

 

 

 

一些基本類型可以使用一個或多個類型修飾符進行修飾:

  • signed
  • unsigned
  • short
  • long

下表顯示了各種變數類型在記憶體中存儲值時需要占用的記憶體,以及該類型的變數所能存儲的最大值和最小值。

註意:不同系統會有所差異。

類型範圍
char 1 個位元組 -128 到 127 或者 0 到 255
unsigned char 1 個位元組 0 到 255
signed char 1 個位元組 -128 到 127
int 4 個位元組 -2147483648 到 2147483647
unsigned int 4 個位元組 0 到 4294967295
signed int 4 個位元組 -2147483648 到 2147483647
short int 2 個位元組 -32768 到 32767
unsigned short int 2 個位元組 0 到 65,535
signed short int 2 個位元組 -32768 到 32767
long int 8 個位元組 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
signed long int 8 個位元組 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long int 8 個位元組 0 to 18,446,744,073,709,551,615
float 4 個位元組 +/- 3.4e +/- 38 (~7 個數字)
double 8 個位元組 +/- 1.7e +/- 308 (~15 個數字)
long double 16 個位元組 +/- 1.7e +/- 308 (~15 個數字)
wchar_t 2 或 4 個位元組 1 個寬字元

 

 

5.類型轉換

c++自動執行很多類型轉換

  • 將一種算術類型的值賦給另一種算術類型的變數時,c++將對值進行轉換;
  • 表達式中包含不同的類型時,c++將對值進行轉換;
  • 將參數傳遞給函數時,c++將對值進行轉換。

c++11新增了一個工具,讓編譯器能夠根據初始值的類型推斷變數的類型。即auto

如 auto n = 100; //n是int型

 auto x = 1.5; //x是double型

在處理複雜類型,比如標準模塊庫(STL)中的類型時,自動類型推斷的優勢才能顯現出來,如:在c++98中的代碼

std::vector<double> scores;

std::vector<double>::iterator pv = scores.begin();

c++11允許將其寫為:

std::vector<double> scores;

auto pv = scores.begin();

 

 

參考:《c++ primer plus》


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 類與類之間的關係 在我們的世界中事物和事物之間總會有一些聯繫. 在面向對象中. 類和類之間也可以產生相關的關係 1. 依賴關係 執行某個動作的時候. 需要xxx來幫助你完成這個操作. 此時的關係是最輕的. 隨時可以更換另外一個東西來完成此操作 2. 關聯關係 在對象裡面埋對象 self.girlFr ...
  • 類與類之間的關係 在我們的世界中事物和事物之間總會有一些聯繫. 在面向對象中. 類和類之間也可以產生相關的關係 1. 依賴關係 執行某個動作的時候. 需要xxx來幫助你完成這個操作. 此時的關係是最輕的. 隨時可以更換另外一個東西來完成此操作 2. 關聯關係 在對象裡面埋對象 self.girlFr ...
  • 1.自動裝箱和自動拆箱 裝箱就是自動將基本數據類型轉換為包裝器類型; (1)Integer it = 200; 實際上是:Integer it3 = Integer.valueOf(100); 自動裝箱功能:把int類型自動裝載到Integer中 先裝箱,再賦值 拆箱就是 自動將包裝器類型轉換為基本 ...
  • 當項目使用分散式架構時,就會有可能出現客戶端數據重覆提交的情況 比如,當你向伺服器發起一個借貸命令時,如果手速夠快,可能會向後臺的兩個撥款伺服器發起同一個請求 此時, 如果不進行處理, 後臺可能會向用戶撥款兩次, 但是用戶只有一次的借錢記錄. 這時, 也是用到了常用sso登錄時的技術Redis, 前 ...
  • 這一節主要講解了C語言里變數在記憶體中的位置,各種變數的使用區別,以及如何在堆棧中分配空間等C語言記憶體管理問題。 自動變數與靜態變數 auto自動變數 auto是預設的關鍵字,如實際中int a,實際為auto int a,{}內部的都是auto變數,不用為此類變數申請或者釋放空間,它都是自動完成的。 ...
  • 本節內容主要介紹了C語言程式的基本數據類型。介紹了基本類型的整數類型和浮點類型,以及簡單的講解了void類型。整數類型又包括int型、char型、bool型,浮點類型又包括單精度浮點數(float)和雙精度浮點數(double)。 ...
  • Python學習心得——模塊的導入 在Python語言的編輯器里,除了預設的內置函數外,其他函數的調用,必須先通過import語句將其導入才能使用。 import語句導入整個函數模塊 導入方法: import 函數模塊名 示例 新建一個名為 func_test.py 的文件,內容為: 保存並退出,在 ...
  • 前言 本篇主要講述是Java中JDK1.8的一些新語法特性使用,主要是Lambda、Stream和LocalDate日期的一些使用講解。 Lambda Lambda介紹 Lambda 表達式(lambda expression)是一個匿名函數,Lambda表達式基於數學中的λ演算得名,直接對應於其中 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...