在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C++內(nèi)置基本數(shù)據(jù)類型

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

前言

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

基本數(shù)據(jù)類型

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

算術(shù)類型

C++提供了以下的算術(shù)基本類型,C++的算術(shù)基本類型又可以分為整數(shù)類型和浮點(diǎn)型,其具體情況如下,數(shù)據(jù)類型占據(jù)的空間與平臺(tái)相關(guān),表中是最小占據(jù)的空間。

類型 說明 最小空間
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 單精度浮點(diǎn)型 6位有效數(shù)字
double 雙精度浮點(diǎn)型 10位有效數(shù)字
long double 擴(kuò)展精度浮點(diǎn)型 10位有效數(shù)字
signed和unsigned

除了布爾類型和擴(kuò)展字符類型,整型可以是有符號(hào)的也可是無符號(hào)的,short,int, long這些都是默認(rèn)有符號(hào)的,有符號(hào)整型存儲(chǔ)的時(shí)候第一個(gè)數(shù)字代表符號(hào),其可以是負(fù)的,也可以是正的。無符號(hào)類型都是大于或等于0的,想獲得無符號(hào)整型只需要在相應(yīng)的類型前加上unsigned即可,如unsigned short。

需要注意的是char也有三個(gè)類型,char, unsigned char和signed char,說是三種類型其實(shí)只有兩種類型就是無符號(hào)字符和有符號(hào)字符,其中char是有符號(hào)或無符號(hào)是與編譯器相關(guān)的,所以在使用char時(shí)最好注明是有符號(hào)還是無符號(hào)的。

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

  • 如果明確不會(huì)為負(fù)時(shí)使用無符號(hào)類型。
  • 在使用整型時(shí)通常使用int,short通常太小,long通常和int大小相同,如果值大于int規(guī)定的占最小空間的最大值則使用longlong。
  • 盡量不要直接使用char,而是使用unsigned char和signed char,因?yàn)閏har是有符號(hào)或是無符號(hào)在不同編譯器上是不同的。
  • 對(duì)于浮點(diǎn)數(shù)盡量使用double,因?yàn)閒loat進(jìn)度通常不夠,而且在一些機(jī)器上double運(yùn)算要比float快。

類型轉(zhuǎn)換

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

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

當(dāng)我們將一個(gè)算術(shù)類型轉(zhuǎn)化為一個(gè)非算術(shù)類型,其結(jié)果取決于其值的范圍:

  • 當(dāng)將一個(gè)非布爾類型的值賦予一個(gè)布爾類型的值時(shí),如果該值等于0則是false,反之則是true。
  • 當(dāng)將一個(gè)bool類型的值賦予一個(gè)非bool類型的值時(shí),如果是true則轉(zhuǎn)化為1,false則轉(zhuǎn)化為0。
  • 當(dāng)將一個(gè)浮點(diǎn)型的值賦予一個(gè)整型,該值則會(huì)被截?cái)啵粫?huì)保留小數(shù)點(diǎn)前的整數(shù)部分。
  • 當(dāng)將一個(gè)整型的值賦予一個(gè)浮點(diǎn)型,其小數(shù)部分則為0.
  • 當(dāng)賦予一個(gè)無符號(hào)類型超出其范圍的值,其結(jié)果就是該值除余該類型最大值的結(jié)果,如將-1賦予8bit的unsiged char,其結(jié)果就是255。
  • 當(dāng)賦予一個(gè)有符號(hào)類型一個(gè)超出其范圍的值,其結(jié)果不可知,可能正常運(yùn)行,可能會(huì)crash,也有可能產(chǎn)生垃圾數(shù)據(jù)。
表達(dá)式中包含無符號(hào)類型

雖然我們不希望將一個(gè)負(fù)值賦予無符號(hào)類型,但是這個(gè)錯(cuò)誤很容易在無意識(shí)的情況下觸發(fā),例如在一個(gè)算數(shù)表達(dá)式中如果包含無符號(hào)數(shù)和符號(hào)數(shù),其會(huì)將符號(hào)數(shù)自動(dòng)轉(zhuǎn)化為無符號(hào)數(shù),其例子如下。

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

[

其結(jié)果為

4294967266
20

還有就是在循環(huán)中使用無符號(hào)數(shù),可能會(huì)造成死循環(huán),例子如下,當(dāng)i為-1時(shí)會(huì)轉(zhuǎn)化為無符號(hào)數(shù),會(huì)一直循環(huán)下去。

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

?盡量不要將無符號(hào)數(shù)與符號(hào)數(shù)混用,如果混用要確保其不會(huì)超出范圍。

?

變量

變量是用來存儲(chǔ)程序操作的數(shù)據(jù),C++是一個(gè)強(qiáng)類型的語言,在聲明一個(gè)變量時(shí)必須要指定其類型,聲明的類型決定其在內(nèi)存中存儲(chǔ)方式以及可以執(zhí)行的操作。C++的聲明變量的方式很簡(jiǎn)單,首先是數(shù)據(jù)類型,后面跟著一個(gè)或多個(gè)變量名,也可以在聲明時(shí)初始化(可選),變量名以逗號(hào)隔開,最后以分號(hào)結(jié)尾

int a = 0, b, c;

?初始化并不等于賦值,初始化是指在變量被創(chuàng)建時(shí)賦予其一個(gè)值,而賦值是指改變變量當(dāng)前的值并賦予其一個(gè)新值。

?

初始化

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

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

當(dāng)一個(gè)變量在聲明時(shí)沒有主動(dòng)進(jìn)行初始化時(shí),會(huì)賦予一個(gè)默認(rèn)初始化值,其值取決于它的位置和類型,內(nèi)置類型如果沒有初始化且不在任何函數(shù)體內(nèi),則其值為0,如果在函數(shù)體內(nèi)則是undefined,獲取或者操作undefined值可能會(huì)發(fā)生未知的錯(cuò)誤。

聲明與定義

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

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

]()

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1947

    瀏覽量

    34848
  • 字符
    +關(guān)注

    關(guān)注

    0

    文章

    233

    瀏覽量

    25233
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2113

    瀏覽量

    73742
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語言中的基本數(shù)據(jù)類型

    C語言是非常重要的一門程序設(shè)計(jì)語言,學(xué)好C語言再去學(xué)習(xí)其他編程語言將變得很輕松,因?yàn)榇蟛糠终Z言的都有相同的共性存在。本節(jié)我們來講解一下C語言中的基本數(shù)據(jù)類型,掌握如何使用變量以及變量在
    發(fā)表于 04-26 17:33 ?2050次閱讀
    <b class='flag-5'>C</b>語言中的基<b class='flag-5'>本數(shù)據(jù)類型</b>

    C語言中基本數(shù)據(jù)類型、變量和常量的使用

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

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

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

    Java基本數(shù)據(jù)類型之間的運(yùn)算規(guī)則是什么?

    Java基本數(shù)據(jù)類型Java變量的使用說明Java基本數(shù)據(jù)類型之間的運(yùn)算規(guī)則
    發(fā)表于 11-04 09:59

    C語言的基本數(shù)據(jù)類型包括哪幾種

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

    淺析C51的基本數(shù)據(jù)類型和擴(kuò)充數(shù)據(jù)類型

    本數(shù)據(jù)類型:擴(kuò)充數(shù)據(jù)類型
    發(fā)表于 11-22 06:05

    C預(yù)處理與C語言基本數(shù)據(jù)類型

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

    C++教程第三章數(shù)據(jù)類型

    C++教程第三章數(shù)據(jù)類型 什么是數(shù)據(jù)類型一定的數(shù)據(jù)在計(jì)算機(jī)的內(nèi)部表示;該數(shù)據(jù)所表示的值的集合;在該數(shù)
    發(fā)表于 05-15 17:56 ?48次下載

    C++入門教程之數(shù)據(jù)類型、運(yùn)算符和表達(dá)式的詳細(xì)資料說明

    本文檔的詳細(xì)介紹的是C++入門教程之數(shù)據(jù)類型、運(yùn)算符和表達(dá)式的詳細(xì)資料說明。主要內(nèi)容包括了: 基本數(shù)據(jù)類型 常量和變量 輸入輸出 運(yùn)算符和表達(dá)式 數(shù)據(jù)類型的轉(zhuǎn)換 構(gòu)造
    發(fā)表于 02-15 11:26 ?2次下載
    <b class='flag-5'>C++</b>入門教程之<b class='flag-5'>數(shù)據(jù)類型</b>、運(yùn)算符和表達(dá)式的詳細(xì)資料說明

    51單片機(jī)學(xué)習(xí)筆記(9)——C51的基本數(shù)據(jù)類型和擴(kuò)充數(shù)據(jù)類型

    本數(shù)據(jù)類型:擴(kuò)充數(shù)據(jù)類型
    發(fā)表于 11-14 13:36 ?1次下載
    51單片機(jī)學(xué)習(xí)筆記(9)——<b class='flag-5'>C</b>51的基<b class='flag-5'>本數(shù)據(jù)類型</b>和擴(kuò)充<b class='flag-5'>數(shù)據(jù)類型</b>

    C51基本數(shù)據(jù)類型

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

    C語言-基本數(shù)據(jù)類型與位運(yùn)算

    這篇文章作為基礎(chǔ)知識(shí)點(diǎn),總結(jié)C語言的基本數(shù)據(jù)類型有哪些,浮點(diǎn)數(shù)的精度,整數(shù)變量的空間范圍,變量定義語法,變量命名規(guī)則,浮點(diǎn)數(shù)打印格式,基本數(shù)據(jù)類型printf對(duì)應(yīng)的打印、位運(yùn)算的知識(shí)點(diǎn)。
    的頭像 發(fā)表于 08-14 09:56 ?1613次閱讀

    Python最基本內(nèi)置數(shù)據(jù)類型(1)

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

    本數(shù)據(jù)類型分享

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

    javascript的基本數(shù)據(jù)類型有哪些

    JavaScript 是一種動(dòng)態(tài)的、面向?qū)ο蟮木幊陶Z言,廣泛應(yīng)用于 Web 開發(fā)中。在 JavaScript 中,有七種基本數(shù)據(jù)類型(Primitive Types),它們分別是 Undefined
    的頭像 發(fā)表于 12-03 11:17 ?790次閱讀
    主站蜘蛛池模板: 又长又大又粗又硬3p免费视| www.亚洲综合| 午夜精品久久久久蜜桃| 在线看片一区| 美女被啪到哭网站在线观看| 热99视频| 国产精品久久精品福利网站| 午夜在线视频免费观看| 亚洲午夜久久影院| 午夜精品aaa国产福利| 天天干天天玩| 奇米第四狠狠777高清秒播| 美女被免费网站91色| 97射射| 亚洲综合涩| 在线日韩一区| 四虎影院网| 免费色视频在线观看| 国产三级精品在线| 午夜在线免费视频| 国产精品japanese人妖| qvod高清在线成人观看| www.狠狠| 日韩精品亚洲一级在线观看| 色香蕉在线视频| 免费日本黄色片| 国产成人精品一区二区仙踪林| 午夜在线免费观看视频| 国产手机看片| 亚洲精品资源在线| 香蕉黄色网| 久久99精品一级毛片| 午夜影院免费版| 成人国产一区二区三区| yezhulu在线永久网址yellow| 欧美系列在线播放| 99精品热| 男人的天堂色偷偷之色偷偷| 在线观看视频高清视频| 国产福利影视| 足控免费视频xxav|