關於引用的和const的一些概念

2021-10-09 19:51:38 字數 593 閱讀 4829

文章參考:

下面是我自己的理解:

(1)先弄清楚左值和右值的額概念:

左值和右值:左值和右值並不是等號左邊和右邊的值;而是說,能夠在表示式結束以後還存在的持久物件就是左值,表示式結束以後就消失了的臨時物件稱為右值。

(2)c++規定:對於物件的引用必須是左值(常量引用例外)。

const int &b = 101;(正確)

int & b = 101;(錯誤)

int a = 101; int &b = a;(正確)

對1來說,加上const以後,b變成了乙個持久物件,生命週期中的a值一直是101,不再改變。

對3來說,b的值是變化的,但是b和a的位址是一樣的,位址裡面的值也是一樣的,繫結的,改變乙個必然另乙個跟著改變。因此,改變b就會改變a。

對3來說,表示式執行時,b的值變為101,表示式結束,b也就消失了,而「c++規定:對於物件的引用必須是左值(常量引用例外)。」相矛盾,因此,2表示式是錯誤的。

從這個角度再來看3語句,「int a = 101;」是乙個(某種意義上的全域性變數)可以在表示式結束後可以一直存在的變數,「 int &b = a」這個語句執行完只要a依然存在,b也就存在,此時b是左值。

關於const的一些知識

首先來看幾個句子 1 const int a 2 int const a 3 const int a 4 int const a 5 int const a const 1和2的作用是一樣的 a是乙個整形常數。3說明a是乙個指向整形常數的指標 雖然整形常數不可修改,但指標可以修改的 4的意思是a是乙...

關於const的一些事

一 const能做哪些事情呢?1 可以定義const常量 2 可以修飾函式的形參和返回值 3 可以修飾函式的定義體 意義 被const修飾的東西都要受到強制的保護,可以預防意外的變動,能提高程式的健壯性 二 const和 define有啥不同的呢?我們知道const定義的是常量,define也可以定...

關於const引用 常量指標 指標常量的一些知識

應該將不需要修改的引用形參定義為const引用。普通的非const引用形參在使用時不太靈活。這樣的形參既不能用const物件初始化,也不能用字面值或者產生右值的表示式實參初始化,如下所示 int incr int val int main 理解返回引用至關重要的是 千萬不能返回區域性變數的引用。當然...