色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C++內置基本數據類型

jf_78858299 ? 來源: QStack ? 作者: 月下西樓 ? 2023-03-17 14:53 ? 次閱讀

前言

每一種編程語言都會提供一些與其他語言不同的特性,這也是它產生的原因,但是作為編程語言,它也會保留所有編程語言的共性,例如一些基本類型,整形,浮點型,字符等,還有變量、表達式和控制流,所有的編程語言這些部分都不會有很大差異。

基本數據類型

基本的數據類型是每一個語言的基礎,數據的類型決定了數據的含義以及數據所支持的操作,不同的數據類型相同的操作結果可能完全不同,例如同樣的表達式a + b,如果a和b是整型,那么a + b的結果就是二者的和,如果a和b是字符串,a + b的結果就是字符串的拼接。C++提供了很多基本的數據類型,大致可以分為兩類,一類是算數類型如整型和浮點型等,一類的是特殊的void類型,void類型沒有關聯的值,只用于一些特殊的場景,例如函數沒有返回值。

算術類型

C++提供了以下的算術基本類型,C++的算術基本類型又可以分為整數類型和浮點型,其具體情況如下,數據類型占據的空間與平臺相關,表中是最小占據的空間。

類型 說明 最小空間
bool 布爾類型 NA
char 字符類型 8bits
w_char_t 長字符類型 16bits
char16_t unicode 字符 16bits
char32_t uincode 字符 32bits
short 短整型 16bits
int 整型 16bits
long 長整型 32bits
long long 長整型 64bits
float 單精度浮點型 6位有效數字
double 雙精度浮點型 10位有效數字
long double 擴展精度浮點型 10位有效數字
signed和unsigned

除了布爾類型和擴展字符類型,整型可以是有符號的也可是無符號的,short,int, long這些都是默認有符號的,有符號整型存儲的時候第一個數字代表符號,其可以是負的,也可以是正的。無符號類型都是大于或等于0的,想獲得無符號整型只需要在相應的類型前加上unsigned即可,如unsigned short。

需要注意的是char也有三個類型,char, unsigned char和signed char,說是三種類型其實只有兩種類型就是無符號字符和有符號字符,其中char是有符號或無符號是與編譯器相關的,所以在使用char時最好注明是有符號還是無符號的。

C語言一樣,C++也是非常接近硬件的語言,為了適應很多品類繁多的硬件,應該通過更加嚴格的類型定義來避免歧義,在不同的硬件上行為保持一致。在選擇類型時有以下幾條意見:

  • 如果明確不會為負時使用無符號類型。
  • 在使用整型時通常使用int,short通常太小,long通常和int大小相同,如果值大于int規定的占最小空間的最大值則使用longlong。
  • 盡量不要直接使用char,而是使用unsigned char和signed char,因為char是有符號或是無符號在不同編譯器上是不同的。
  • 對于浮點數盡量使用double,因為float進度通常不夠,而且在一些機器上double運算要比float快。

類型轉換

在程序中操作數的類型是由其值和使用形式所共同決定的,類型轉換是指操作數的類型會自動轉換為我們所希望的類型,這么說可能有點抽象,以例子說明,42在正常使用過程是整型,可以實現各種算術操作,但是在以下情況會 轉化為布爾類型。

# include
int main(){
    if (42) {
        std::cout<<"42是布爾類型"<

當我們將一個算術類型轉化為一個非算術類型,其結果取決于其值的范圍:

  • 當將一個非布爾類型的值賦予一個布爾類型的值時,如果該值等于0則是false,反之則是true。
  • 當將一個bool類型的值賦予一個非bool類型的值時,如果是true則轉化為1,false則轉化為0。
  • 當將一個浮點型的值賦予一個整型,該值則會被截斷,只會保留小數點前的整數部分。
  • 當將一個整型的值賦予一個浮點型,其小數部分則為0.
  • 當賦予一個無符號類型超出其范圍的值,其結果就是該值除余該類型最大值的結果,如將-1賦予8bit的unsiged char,其結果就是255。
  • 當賦予一個有符號類型一個超出其范圍的值,其結果不可知,可能正常運行,可能會crash,也有可能產生垃圾數據。
表達式中包含無符號類型

雖然我們不希望將一個負值賦予無符號類型,但是這個錯誤很容易在無意識的情況下觸發,例如在一個算數表達式中如果包含無符號數和符號數,其會將符號數自動轉化為無符號數,其例子如下。

# include
int main() {
   int a = -40;
   unsigned b = 10;
   std::cout<return 0;
}

[

其結果為

4294967266
20

還有就是在循環中使用無符號數,可能會造成死循環,例子如下,當i為-1時會轉化為無符號數,會一直循環下去。

# include
int main() {
  for (unsigned i = 11; i >= 0; --i) {
    std::cout<

?盡量不要將無符號數與符號數混用,如果混用要確保其不會超出范圍。

?

變量

變量是用來存儲程序操作的數據,C++是一個強類型的語言,在聲明一個變量時必須要指定其類型,聲明的類型決定其在內存中存儲方式以及可以執行的操作。C++的聲明變量的方式很簡單,首先是數據類型,后面跟著一個或多個變量名,也可以在聲明時初始化(可選),變量名以逗號隔開,最后以分號結尾

int a = 0, b, c;

?初始化并不等于賦值,初始化是指在變量被創建時賦予其一個值,而賦值是指改變變量當前的值并賦予其一個新值。

?

初始化

C++有很多的初始化方式,如下就有三種初始化方法。

# include
int main() {
    int a = 0;
    int b = {0};
    int d(0);
    std::cout<

當一個變量在聲明時沒有主動進行初始化時,會賦予一個默認初始化值,其值取決于它的位置和類型,內置類型如果沒有初始化且不在任何函數體內,則其值為0,如果在函數體內則是undefined,獲取或者操作undefined值可能會發生未知的錯誤。

聲明與定義

C++支持獨立編譯,也就是說C++支持將我們的程序分割為多個文件,且每個文件都能獨立編譯,當我們將程序分割為多個文件時就牽扯到文件間的數據共享,一個文件可能需要使用其他文件定義的變量,例如我們使用std::cout,為了支持這種獨立編譯,C++將聲明與定義分割開,聲明是指讓程序知道這個名字,當一個文件需要使用一個變量時,只要引入此變量的聲明即可,定義是指創建相關的實體。聲明是指確定了類型與名字,但是并未賦值,連默認的賦值都沒有,也沒有申請內存,而定義則是申請兩內存,也賦值兩。為了區分聲明和定義,C++提供了extern關鍵字。

extern int i ;//聲明里但未定義
 int j;//聲明且定義了

]()

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程語言
    +關注

    關注

    10

    文章

    1945

    瀏覽量

    34733
  • 字符
    +關注

    關注

    0

    文章

    233

    瀏覽量

    25207
  • C++
    C++
    +關注

    關注

    22

    文章

    2108

    瀏覽量

    73642
收藏 人收藏

    評論

    相關推薦

    C語言中的基本數據類型

    C語言是非常重要的一門程序設計語言,學好C語言再去學習其他編程語言將變得很輕松,因為大部分語言的都有相同的共性存在。本節我們來講解一下C語言中的基本數據類型,掌握如何使用變量以及變量在
    發表于 04-26 17:33 ?2012次閱讀
    <b class='flag-5'>C</b>語言中的基<b class='flag-5'>本數據類型</b>

    C語言中基本數據類型、變量和常量的使用

    C語言中基本數據類型、變量和常量的使用
    發表于 08-18 16:42 ?2768次閱讀
    <b class='flag-5'>C</b>語言中基<b class='flag-5'>本數據類型</b>、變量和常量的使用

    技術干貨驛站 ▏深入理解C語言:基本數據類型和變量

    C語言中,數據類型和變量是編程的基礎,也是理解更復雜概念的關鍵。數據類型決定了變量的內存分配、存儲范圍和操作方式,而變量則是存儲數據的容器。本篇文章將從基
    的頭像 發表于 07-26 17:53 ?2126次閱讀
    技術干貨驛站 ▏深入理解<b class='flag-5'>C</b>語言:基<b class='flag-5'>本數據類型</b>和變量

    Java基本數據類型之間的運算規則是什么?

    Java基本數據類型Java變量的使用說明Java基本數據類型之間的運算規則
    發表于 11-04 09:59

    C語言的基本數據類型包括哪幾種

    C語言的基本數據類型包括哪幾種?分別是什么?
    發表于 10-14 12:27

    淺析C51的基本數據類型和擴充數據類型

    本數據類型:擴充數據類型
    發表于 11-22 06:05

    C預處理與C語言基本數據類型

    指令表:注意:宏名的書寫由標識符與兩邊各兩條下劃線構成。C語言基本數據類型不同操作系統中數據類型所占字節數圖解數據類型的其他分類:變量常量(字面量和const常量)void(特殊
    發表于 12-21 08:29

    C++教程第三章數據類型

    C++教程第三章數據類型 什么是數據類型一定的數據在計算機的內部表示;該數據所表示的值的集合;在該
    發表于 05-15 17:56 ?48次下載

    C++入門教程之數據類型、運算符和表達式的詳細資料說明

    本文檔的詳細介紹的是C++入門教程之數據類型、運算符和表達式的詳細資料說明。主要內容包括了: 基本數據類型 常量和變量 輸入輸出 運算符和表達式 數據類型的轉換 構造
    發表于 02-15 11:26 ?2次下載
    <b class='flag-5'>C++</b>入門教程之<b class='flag-5'>數據類型</b>、運算符和表達式的詳細資料說明

    51單片機學習筆記(9)——C51的基本數據類型和擴充數據類型

    本數據類型:擴充數據類型
    發表于 11-14 13:36 ?1次下載
    51單片機學習筆記(9)——<b class='flag-5'>C</b>51的基<b class='flag-5'>本數據類型</b>和擴充<b class='flag-5'>數據類型</b>

    C51基本數據類型

    其中 (1)bit、sbit、sfr、sfr16是C51擴展數據類型,數標準C沒有的 (2)定義的數據類型存儲在RAM中,以單片機AT89S52為例,RAM大小為256byte
    發表于 11-25 17:51 ?56次下載
    <b class='flag-5'>C</b>51基<b class='flag-5'>本數據類型</b>

    C語言-基本數據類型與位運算

    這篇文章作為基礎知識點,總結C語言的基本數據類型有哪些,浮點數的精度,整數變量的空間范圍,變量定義語法,變量命名規則,浮點數打印格式,基本數據類型printf對應的打印、位運算的知識點。
    的頭像 發表于 08-14 09:56 ?1596次閱讀

    Python最基本內置數據類型(1)

    最基本內置數據類型 1. 基本數據類型和運算符 python中變量沒有類型,但是對象都有類型 python中最基本的
    的頭像 發表于 03-08 17:17 ?891次閱讀
    Python最基本<b class='flag-5'>內置</b><b class='flag-5'>數據類型</b>(1)

    本數據類型分享

    本數據類型本數據類型:包括位、位序列、整數、浮點數、日期時間。此外字符也屬于基本數據類型,請參見文檔String與WString。 1.位和位序列 2.整數數據類型 3.浮點型實
    的頭像 發表于 06-13 14:14 ?9934次閱讀
    基<b class='flag-5'>本數據類型</b>分享

    javascript的基本數據類型有哪些

    JavaScript 是一種動態的、面向對象的編程語言,廣泛應用于 Web 開發中。在 JavaScript 中,有七種基本數據類型(Primitive Types),它們分別是 Undefined
    的頭像 發表于 12-03 11:17 ?757次閱讀
    主站蜘蛛池模板: 啪啪后入内射日韩| chinese帅哥gv在线看| 人妻少妇69式99偷拍| 精品AV无码一二三区视频| 成人无码在线超碰视频| 中文字幕在线久热精品| 亚洲AV无码国产精品午夜久久| 欧美 国产 日产 韩国 在线| 接吻吃胸摸下面啪啪教程| 纲手裸乳被爆白浆| 99久久99久久久精品久久| 亚洲色图另类小说| 无止侵犯高H1V3无止侵犯| 欧美一区二区三区男同| 久久免费视频| 九九影院午夜理论片无码| 国产精品永久免费| 俄罗斯aaaaa一级毛片| 99热最新在线| 99爱免费视频| 综合激情区视频一区视频二区| 亚洲欧美韩国综合色| 性欧美videofree中文字幕| 日本浴室日产在线系列| 欧美精品成人久久网站| 免费精品在线视频| 两个洞一起插哦!好刺激| 久久9精品区-无套内射无码 | 国产午夜伦伦伦午夜伦| 囯产精品久久久久免费蜜桃| china年轻小帅脸直播飞机| 99爱在线观看精品视频| 97se se| 最近免费中文字幕MV在线视频3| 亚洲中字幕永久在线观看| 亚洲伊人精品综合在合线| 亚洲女人毛片| 夜色帮首页| 中文国产乱码在线人妻一区二区| 一级毛片免费视频网站| 中文在线观看免费网站|