C++ 基礎概念總結第二篇:數據類型

2022-01-01 Bob的天空

欸等等,數據類型是什麼鳥,數據就數據唄,都是一堆零和一還分什麼類型。

 

那這篇可太水了,不看了

 

可能你看見標題的時候又會覺得我在胡謅瞎侃,佔用大篇幅來寫這些有的沒的,但是你要是學過半小時c++編程的話你就應該知道,奧,這玩意可能不至於像聽起來那麼直白。

 

 

數據類型的廣泛定義是「在編程中命名一個變量或常量時,分配出指定的數據類型,不然變量分配的內存將出錯」

 

 

數據類型有對應的關鍵字,在命名變量時,先得輸入關鍵字,空格,給它起個名,然後再賦予值,這篇文章會見到介紹下各種變量關鍵字以及其用處涵義。

 

 

 

首先介紹最基本的數據類型:整形

 

 

整形變量代表了整數類型的變量,通常分為short,int, long, 還有longlong

 

那我不想管這些怎麼辦?我就想用short寫114514191810^64,那也是整數啊,怎麼不行了

 

正常人已經看出來了,根據這些不同整型前綴其取值範圍和分配的空間字節數也不一樣

 

Short較短,雖然說短吧,但是假如你的變量取值範圍在(-2^15——2^15-1)之間,使用這個short相較於其他數據類型可以至少節省兩個字節。那可是整整兩個字節,十六個bit,雖然聽起來沒什麼,但是你天天上課偷偷玩的俄羅斯方塊裡面一個方塊就要用兩個字節!怎麼樣,是不是很沒用?

 

 

Int是中規中矩的那種數據,作為我們平時簡單編程最常用的整形它有四個字節(32bit),是short的兩倍;取值範圍是(-2^31——2^31-1)沒什麼特別的,老實,中庸,實用,就像身邊的很多人一樣。

 

 

Long為長整型,說是長,但是32位の用戶估計會不太同意

「欸,你這長整型有問題啊,這哪夠8位元組啊」

這是因為這個整形比較矯情奧,只在64位的情況下八字節,三十二位的情況下為四字節,取值範圍同於前者,也是(-2^31——2^31-1)

 

 

 

然後就是longlong,顧名思義就是長上加長,到底有多長?八字節,64bit取值範圍(-2^63——2^63-1),long, longer, longest(總之就是很長=)

(星際倉鼠也是倉鼠)

 

 

 

介紹完了整形,那有人就該問了:小數呢?字符呢,看不起人是吧就只會用整數糊弄我,hetui,垃圾文章不看了。

 

那就介紹下這個數據類型:實型

 

 

實型數據有兩個關鍵字,一個是float(單精度), 佔用空間為四字節,可以表示七位有效數字。

 

另一種是double(雙精度),佔用八個字節,可以表示15-16位有效數字。

 

 

那字符呢

 

那就有了字符型和字符串型,顧名思義,字符型只能輸出一個

 

 

字符型的關鍵字是char,它字符型變量雖然只佔用一個字符,但是它並不會把你賦的那個字存到代碼裡面,它會把那個字符對應的ascii編碼存檔內存空間裡

 

 

 

 

字符串有兩種風格,一個是c++從他祖宗c那裡繼承的使用起來十分簡單就是char 後面接變量名,不過在等號前面需要先加一個[ ],然後等號後面的字符需要用雙引號括起來。

 

就這麼簡單乂

 

 

 

 

 

另外一種是c++風格的字符型

這個雖說常用但是必須要在頭文件那一行加上#include<string>,不然會報錯

 

C++風格的關鍵字是string,注意一下等號後面依舊需要把字符串括起來。

 

 

 (不要當真,c++裡面這麼列印不出逗號和中文)

 

 

最後一個數據類型為布爾型(bool),它的作用是用來判斷真或假的值,佔用一個字節大小,假如是true,那就是1,false就是0

 

但是它怎麼用的?

打個比方

 

bool nick =true

cout<<nick<<endl;

 

這裡面bool為關鍵字,true為值,nick為變量名,cout那一行是列印出變量nick,得到的結果為1,同理,假如我在第一行寫的nick=false, 那麼列印出來的就是

 

 

 

就這些了,簡單寫寫活躍下腦子,可能會有不嚴謹的,但這篇文章的本質也不是科普(笑),下一篇就簡單我說說來加拿大這麼久的一些感想和趣事。

 

再見

相關焦點

  • C++基礎總結(一):從「hello world」入門C++!
    最近對C++的基礎知識進行了大匯總,當然這是精簡版的,但是篇幅也不少,所以今天先分享一下hello world,建議大家收藏慢慢學習,同時希望對大家的C++學習有所幫助。C++ 是一種靜態類型的、編譯式的、通用的、大小寫敏感的、不規則的程式語言,支持過程化編程、面向對象編程和泛型編程。C++ 被認為是一種中級語言,它綜合了高級語言和低級語言的特點。
  • 【C++】數據類型
    今天來講講不c++中同數據類型的使用方法和區別1.基礎類型類型範圍內存中佔的大小char-128~127或0~2551byteunsigned
  • c++ 之布爾類型和引用的學習總結!
    一、布爾數據類型:在c語言裡面我們知道是沒有布爾數據類型的,而在C++中添加了布爾數據類型(bool),它的取值是:true或者false(也就是1或者0),在內存大小上它佔用一個字節大小:1、bool類型只有true(非0)和false(0)兩個值。
  • C 2 C++進階篇(1)
    之前一直是對於面向過程的編程,python有過那種對象風格的編程,但是對於oop的實際開發還停留在表面,沒有獨立的開發c++經驗,也有好幾年沒有碰過c了。由於接手Qt的相關項目,所以對c to c++的進階希望能進行個自我總結。
  • c++之內存分配、命名空間、強制類型轉換學習總結
    一、C++動態內存分配:在學習c語言的時候,我們一般都是使用庫函數malloc()來進行內存的申請分配,然後使用庫函數free()來進行釋放申請到的內存;現在在c++裡面採用了另外一種內存申請的方法:c++中通過
  • C++、java 和 C 的區別
    一、基礎類型c++:** java:** C#:1.以java為準,c++裡面的int short long 像這樣的整型 一般都有unsigned 和signed的區分 ,這個跟java和c# 的區別比較大,但c#裡面有unit ulong ushort 這三種就相當於c++的修飾詞unsigned,當c++李明的變量類型定義unsigned,就默認是整數。
  • 數據模型概念及類型劃分
    數據模型包括資料庫數據的結構部分、資料庫數據的操作部分和資料庫數據的約束條件  內容  數據模型所描述的內容包括三個部分:數據結構、數據操作、數據約束。  1)數據結構:數據模型中的數據結構主要描述數據的類型、內容、性質以及數據間的聯繫等。數據結構是數據模型的基礎,數據操作和約束都建立在數據結構上。不同的數據結構具有不同的操作和約束。
  • 【SU Ruby教程】了解基礎結構前:數據類型
    這篇文章是屬於SketchUp Ruby教程的第三篇,也是第二部分的第一篇。
  • 那些容易犯錯的c++保留字
    本文首發 | 公眾號:lunvey目前正在學習vc++6.0開發,而這裡面使用的是c++98標準。
  • c++ fstream + string處理大數據
    ,各種清洗數據用的都是java的File,FileReader/FileWriter,BufferedReader/BufferedWriter等類,詳見java讀寫文件(可點擊閱讀原文獲取連結,下同。)
  • c++ fstream + string 處理大數據
    起因(1)之前處理文本數據時,各種清洗數據用的都是java的File,FileReader
  • C++知識點補充5(類型轉換、異常、流)
    7 c++類型轉換類型轉換(cast)是將一種數類型轉成另一種數類型。例如,將一個整型值賦值給一個浮點型的變量,編譯器會暗地裡將其轉換成浮點型。轉換是非堂有用的。但是它也會帶來一些問題,比在轉指計時,我們很可能將其轉一個比它大的類型·但這可能破壞其他的數據。該小心轉換.因為轉換也就相當於對編譯器說:忘記類型檢查,把它看做其他的類型。一般況下,儘量少的去使用類型轉換,除非用解決非常特殊的問題。
  • C++之字符串類學習總結
    ,所以更加無法獲得字符串類型為了解決這個問題,在c++中,引入了自定義類型,而且可以通過類來完成對字符串類型的定義。那麼C++中的原生類型系統是否包含字符串類型呢?答案是c++中並沒有提供原生的字符串類型。
  • 大數據開發基礎:Java基礎數據類型
    在Java基礎入門學習階段,Java基礎數據類型無疑是基礎當中的重點,掌握基礎數據類型,對於後續去理解和掌握更深入的理論,是有緊密的關聯性的。今天的大數據開發基礎分享,我們就來講講,Java八種基礎數據類型。
  • 編程基礎,結構(Struct)
    今天開始福哥開始給大家講編程的基礎知識,這個基礎知識是用來提高編程水平的知識,基礎知識每種程式語言的差異會比較大,所以福哥在講解某一種程式語言的某一特性的時候,會標明這種特性針對的是哪一種程式語言,只想學習某一種程式語言的童鞋可以有選擇的學習。
  • Python基礎-基本數據類型(下)--set
    仍是直奔主題 在Python語言中內置的基本數據類型有以下幾種
  • C++語言學習筆記1
    聲明:       本系列是我從csdn上學習c++語言基礎記錄的筆記,是跟著賀利堅老師所學,這位老師在教學上有獨特的見解,而且人非常耐心,他的課程也非常適合我這種跨專業程式語言學習者。        本系列將記錄C++語言學習的點點滴滴,內容中會有部分賀老師的課件截圖,現已獲得賀老師授權,發出來分享給大家。
  • c++之重載函數學習總結
    一、C++中的函數重載:1、函數重載的概念:用同一個函數名定義不同的函數當函數名和不同的參數搭配時函數的含義不同注意:在c語言中是沒有函數重載這個概念的。6、小結:函數重載是c++中引入的概念函數重載的本質是相互獨立的不同函數
  • 簡要記錄丨VSCode 搭建基礎 C/C++ 編譯環境
    作者丨FightingBoom來源丨嵌入式基礎學習教程1 參考資料  謝謝各位前輩的教程幫助,十分感激!2 簡要說明  首先要明白,VSCode 僅僅只是一個文本編輯器而已,類似記事本、 Sublime Text 等,本身不具備編譯器的功能。  但是 VSCode 可以通過安裝各種擴展插件,實現代碼編譯、調試、運行等功能。
  • 【SAS Says】基礎篇:讀取數據(上)
    上兩節【SAS Says】基礎篇:SAS軟體入門(上)【SAS Says】基礎篇:SAS軟體入門(下)在微信號「shushuojun」中回復「SAS1」查看。第二步,從standard datasources中選擇要導入的數據類型。以commaseparated values(*.csv)為例。