欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

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

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

但在 C++ 中,直接初始化和復制初始化之間有一些微妙的區(qū)別。通常,直接初始化更加高效并且可以用于更多的情況,因為它在聲明的同時就執(zhí)行了初始化操作。 

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

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

double d = 10.5;
int i = d;               // 復制初始化,窄化轉(zhuǎn)換,可能丟失精度
int j = {10.5};          // 列表初始化,會導致編譯錯誤,因為窄化轉(zhuǎn)換是不允許的

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

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

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

相關(guān)文章

  • c++ bitset詳解

    c++ bitset詳解

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論