最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)文章

最新評論

桂东县| 财经| 西平县| 赤水市| 竹溪县| 吉首市| 聂荣县| 巴林左旗| 周宁县| 海丰县| 罗山县| 临沂市| 安阳县| 云阳县| 双流县| 德兴市| 永泰县| 滨州市| 进贤县| 新宾| 阿瓦提县| 沙田区| 镇康县| 陆丰市| 陵川县| 祁连县| 定边县| 眉山市| 浙江省| 翼城县| 陕西省| 沙洋县| 曲麻莱县| 桂平市| 岳西县| 饶阳县| 库尔勒市| 广德县| 蒙山县| 浦城县| 城市|