亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++ 變量的聲明和初始化方式示例詳解

 更新時(shí)間:2024年06月03日 11:46:25   作者:xiaowu080  
在 C++ 中,直接初始化和復(fù)制初始化之間有一些微妙的區(qū)別,通常,直接初始化更加高效并且可以用于更多的情況,因?yàn)樗诼暶鞯耐瑫r(shí)就執(zhí)行了初始化操作,這篇文章主要介紹了C++ 變量的聲明和初始化方式示例,需要的朋友可以參考下

C++ 變量的聲明和初始化方式

下面是一些示例,展示了不同的初始化方式:

double r(3.0);   // 直接初始化
double s = 3.0;  // 復(fù)制初始化
double t{3.0};   // 列表初始化 (C++11 起)
這三種方式都將創(chuàng)建一個(gè) double 類型的變量,并將其初始化為 3.0。

這三種初始化方式在語義上有所不同:

直接初始化 (double r(3.0);): 這種方式在 C++ 中被稱為直接初始化。它表示創(chuàng)建一個(gè)名為 rdouble 類型變量,并將其初始化為 3.0。直接初始化的語法使用圓括號。

復(fù)制初始化 (double s = 3.0;): 這是一種傳統(tǒng)的初始化方式,稱為復(fù)制初始化。它也表示創(chuàng)建一個(gè)名為 sdouble 類型變量,并將其初始化為 3.0。在復(fù)制初始化中,使用等號 = 將值賦給變量。

列表初始化 (double t{3.0};): 這是 C++11 引入的一種新的初始化方式,也被稱為初始化列表。它使用花括號 {} 來初始化變量。列表初始化不僅可以用于變量聲明,還可以用于數(shù)組、結(jié)構(gòu)體、類等類型的初始化。列表初始化在一些情況下會(huì)更嚴(yán)格,例如對于窄化轉(zhuǎn)換的檢查。

但在 C++ 中,直接初始化和復(fù)制初始化之間有一些微妙的區(qū)別。通常,直接初始化更加高效并且可以用于更多的情況,因?yàn)樗诼暶鞯耐瑫r(shí)就執(zhí)行了初始化操作。 

在大多數(shù)情況下,這三種初始化方式都可以使用,并且它們在結(jié)果上是等效的。然而,列表初始化在某些情況下會(huì)更加嚴(yán)格,并且在使用窄化轉(zhuǎn)換時(shí)會(huì)進(jìn)行檢查,這使得它在某些情況下更加安全。

窄化轉(zhuǎn)換案例:

double d = 10.5;
int i = d;               // 復(fù)制初始化,窄化轉(zhuǎn)換,可能丟失精度
int j = {10.5};          // 列表初始化,會(huì)導(dǎo)致編譯錯(cuò)誤,因?yàn)檎D(zhuǎn)換是不允許的

復(fù)制初始化時(shí),將 double 類型的值賦給 int 類型的變量 i,這會(huì)導(dǎo)致窄化轉(zhuǎn)換,可能會(huì)丟失精度。

列表初始化時(shí),將 10.5 賦給 int 類型的變量 j,這也會(huì)導(dǎo)致窄化轉(zhuǎn)換,但是列表初始化對窄化轉(zhuǎn)換進(jìn)行了檢查,因此會(huì)導(dǎo)致編譯錯(cuò)誤。列表初始化方式在這種情況下會(huì)更加嚴(yán)格,以避免可能導(dǎo)致錯(cuò)誤的窄化轉(zhuǎn)換。 

到此這篇關(guān)于C++ 變量的聲明和初始化方式的文章就介紹到這了,更多相關(guān)C++ 變量的聲明和初始化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c++ bitset詳解

    c++ bitset詳解

    這篇文章主要介紹了C++ bitset用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • C語言實(shí)現(xiàn)發(fā)牌洗牌

    C語言實(shí)現(xiàn)發(fā)牌洗牌

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)發(fā)牌洗牌,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++多線程互斥鎖和條件變量的詳解

    C++多線程互斥鎖和條件變量的詳解

    這篇文章主要為大家詳細(xì)介紹了C++多線程互斥鎖和條件變量,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 如何用C++實(shí)現(xiàn)雙向循環(huán)鏈表

    如何用C++實(shí)現(xiàn)雙向循環(huán)鏈表

    本篇文章是對用C++實(shí)現(xiàn)雙向循環(huán)鏈表的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++基于字符串實(shí)現(xiàn)大數(shù)相乘問題的代碼詳解

    C++基于字符串實(shí)現(xiàn)大數(shù)相乘問題的代碼詳解

    在實(shí)際編程中,我們經(jīng)常會(huì)遇到需要處理大整數(shù)的情況,由于編程語言中內(nèi)置整數(shù)類型有其表示范圍的限制,當(dāng)需要處理的整數(shù)超出這些范圍時(shí),就不能直接使用內(nèi)置類型進(jìn)行計(jì)算,所以本文給大家介紹了相關(guān)的解決方法,需要的朋友可以參考下
    2025-03-03
  • 淺談stringstream 的.str()正確用法和清空操作

    淺談stringstream 的.str()正確用法和清空操作

    下面小編就為大家?guī)硪黄獪\談stringstream 的.str()正確用法和清空操作。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • C語言實(shí)現(xiàn)BMP格式圖片轉(zhuǎn)化為灰度

    C語言實(shí)現(xiàn)BMP格式圖片轉(zhuǎn)化為灰度

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)BMP格式圖片轉(zhuǎn)化為灰度,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C++?OpenGL實(shí)現(xiàn)旋轉(zhuǎn)立方體的繪制

    C++?OpenGL實(shí)現(xiàn)旋轉(zhuǎn)立方體的繪制

    這篇文章主要主要為大家詳細(xì)介紹了如何利用C++和OpenGL實(shí)現(xiàn)旋轉(zhuǎn)立方體的繪制,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手嘗試一下
    2022-07-07
  • C++實(shí)現(xiàn)字符串轉(zhuǎn)整數(shù)(atoi)的代碼詳解

    C++實(shí)現(xiàn)字符串轉(zhuǎn)整數(shù)(atoi)的代碼詳解

    在編程中,經(jīng)常會(huì)遇到將字符串轉(zhuǎn)換為整數(shù)的需求,就像標(biāo)準(zhǔn)庫中的 atoi 函數(shù)一樣,本文給大家介紹了C++中字符串轉(zhuǎn)整數(shù)(atoi)的實(shí)現(xiàn)與解析,并有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2025-04-04
  • C++變量存儲(chǔ)的生命周期與作用域?qū)嵗a精講

    C++變量存儲(chǔ)的生命周期與作用域?qū)嵗a精講

    這篇文章主要介紹了C++變量存儲(chǔ)的生命周期與作用域,從創(chuàng)建到消亡的完整過程,例如人從出生到死亡的整個(gè)過程就是一個(gè)生命周期。本文將通過示例為大家詳細(xì)講講,感興趣的可以學(xué)習(xí)一下
    2022-10-10

最新評論