十二 經典問題解析一

2022-08-11 14:00:15 字數 1003 閱讀 3463

const什麼時候為唯讀變數,什麼時候是常量

const常量的判別準則:

在編譯期間不能直接確定初始值的const識別符號,都被作為唯讀變數處理

const引用的型別與初始化變數的型別

#include int main()

引用與指標有什麼關係?如何理解「引用的本質就是指標常量」?

指標是乙個變數:

引用只是乙個變數的新名字:

從使用c++語言的角度來看:

從c++編譯器的角度來看

在工程專案開發中:

#include int a = 1;

struct sv

;int main()

; // 結構體裡面的每個元素是乙個引用 ok

int& array = ; // &array[1] - &array[0] = ? expected ==> 4

// 陣列的每個元素是引用,每個元素的位址都是獨立的,並不連續,err

// c語言有乙個特性,陣列位址連續,位址遞增

// 引用陣列會破壞這個特性,所以c++不支援引用陣列

printf("&sv.x = %p\n", &sv.x);

printf("&sv.y = %p\n", &sv.y);

printf("&sv.z = %p\n", &sv.z);

delete pc;

return 0;

}

指標是乙個變數

引用是乙個變數的新名字

const引用能夠生成新的唯讀變數

在編譯器內部使用指標常量實現「引用

編譯時不能直接確定初始值的 const識別符號都是唯讀變數

經典問題解析

1 經典問題解析。1 const 什麼時候是常量,什麼時候是變數。2 const 常量的判斷準則。1 只有字面量初始化的 const 常量才會進入符號表,真正意義上的常量。2 使用其他變數初始化的 const 常量依舊是唯讀變數。3 被 volatile 修飾的 const 常量不會被放入到符號表 ...

專題一之經典問題解析

一.例項1 const與引用的問題 什麼是符號表?如何才能進入到符號表,成為真正的常量 1 符號表是編譯器編譯過程中產生的資料結構 2 volatile修飾的const常量不會進入到符號表中 如 volatile const int y 2 不會進入符號表中 const引用的型別與初始化變數的型別 ...

專題一經典問題解析

什麼是符號表?引用與指標的疑惑 過載的疑惑 c方式編譯的疑惑?include int main volatie會使編譯器不做任何優化,每次都從記憶體中取值 include int main int main include using namespace std int main 什麼是符號表?符號...