C 中decltype與左值和右值

2021-10-08 04:17:25 字數 428 閱讀 9488

decltype是c++11中引入的新的型別說明符。編譯器根據分析表示式或者函式返回值來分析其型別。decltype的詳細用法,請參考《c++中decltype的使用方法》

decltype後面跟的表示式是左值或者右值時,編譯器分析的型別會有所不同。如果表示式(非單個變數)的求值結果是左值,則編譯器會得到乙個引用型別;如果表示式(非單個變數)的求值結果是右值,則編譯器會得到乙個與表示式相同的型別。

int arr[2] = ;

decltype (arr[1])k = i;

decltype (&arr[1])j = &i;

其中,arr是乙個擁有2個元素的int陣列,arr[1]的型別是int,該表示式是乙個左值,因此k的型別是乙個引用型別,即int&;&arr[1]的型別是int*,該表示式是乙個右值,因此j的型別是int*。

C 中左值與右值

讓我們先看看一些常見的左值和右值舉例 int var 6 var is a lvalue const int var 6 var is a nonmodifiable lvalue char str hello,world str is a nonmodifiable lvalue hello,wo...

C 中左值與右值

讓我們先看看一些常見的左值和右值舉例 int var 6 var is a lvalue const int var 6 var is a nonmodifiable lvalue char str hello,world str is a nonmodifiable lvalue hello,wo...

c 左值與右值

在學c 過程中,左值與右值的概念是一道繞不過去的坎,因此就想寫一些自己的理解。左值 lvalue 與右值 rvalue 是c 語法中的術語 terms 第一次看到這兩個詞的時候,很自然就認為在乙個表示式中,在等號左邊的就是左值,在等號右邊的就是右值。如果你們第一次看到這兩個詞也這麼認為的話,那我要恭...