今天給大家分享一下這段時間學習c++的總結學習:c++裡面的const關鍵字和引用。
一、const關鍵字的總結
1、const什麼時候為唯讀變數,什麼時候又是常量呢?
(1)const常量的判別規則:
(2)const引用的型別與初始化變數的型別
**版本一:
#include int main()
輸出結果:
root@txp-virtual-machine:/home/txp# ./a.out
x = 1
rx = 5
nrx = 5
&x = 0x7ffcc5fa8abc
&rx = 0x7ffcc5fa8abc
&nrx = 0x7ffcc5fa8abc
**版本二:
#include int main()
輸出結果:
root@txp-virtual-machine:/home/txp# ./a.out
y = 8
p = 0x7ffd78559684
**版本三:
#include int main()
輸出結果:
root@txp-virtual-machine:/home/txp# ./a.out
y = 8
p = 0x7ffc5d651250
z = 9
p = 0x7ffc5d651254
**版本四:
#include int main()
結果輸出:
root@txp-virtual-machine:/home/txp# ./a.out
c = a
rc = a
trc = c
二、引用的總結:
1、引用與指標有什麼關係,以及如何理解"引用的本質就是指標常量"?
(1)指標是乙個常量:
(2)引用只是乙個變數的新名字:
(3)從使用c++語言的角度來看:
(4)從c++編譯器的角度來看:
(5)在工程專案開發中:
**實踐:
版本一:
#include int a = 2;
struct sv;
int main()
; 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;
}
輸出結果:
root@txp-virtual-machine:/home/txp# ./a.out
&sv.x = 0x601050
&sv.y = 0x7ffee11ba794
&sv.z = 0x1cfd010
版本二:
#include int a = 2;
struct sv;
int main()
; int& array = ;//陣列中的每個元素是引用就不可以;error: declaration of 『array』 as array of references;c++ 天生要支援 c 語言,c 語言中陣列中的每個元素在記憶體中是順序存放的,位址是遞增的,所以在 c++ 中也要相容這個特性,而在 c++ 中唯有引用陣列破快了這個特性,所以說 c++ 中不支援引用陣列;&array[1] - &array[0] != expected ==> 4
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;
}
輸出結果:
root@txp-virtual-machine:/home/txp# g++ test.cpp
test.cpp: in function 『int main()』:
test.cpp:16:14: error: declaration of 『array』 as array of references
int& array = ;
三、總結:
好了,今天的分享就到這裡,如果文章中有錯誤或者不理解的地方,可以交流互動,一起進步。我是txp,下期見!
c 中const和引用
c 和c語言裡面的const 1 在c語言裡面的const修飾的量是乙個常變數,不能作為左值,但是可以通過洩露指標和引用去修改它,int a 10 int p a 洩露了常量的引用。但是 int a 10 const int p a 是正確的。因為a本來就是普通的變數,而通過常量 p不能改變它,但a...
C 中const引用和非const引用的使用注意
今天學習時突然有疑惑,c 有了指標為何還要設計引用呢?後來看到一篇部落格豁然開朗 為什麼 c 有指標了還要引用?總結一下 更加簡潔好看了 由於引用必須被初始化,並且之後也無法重新繫結其他物件,這樣就更安全了 為了操作符過載,比如部落格中那個過載 的例子 並且,在了解了這些之後,對引用的一些其他特性也...
C 中的引用與const
c 中引用與const的組合很容易引起困擾,這篇文章將對這一問題進行簡要介紹。首先,要明確一些原則 1 const是限定符,可以放在引用符 指標符 的後面,比如 const,const 而int是型別符,不能放在 和 的後面,比如 int,int都會出錯。2 引用必須初始化,且初始化後不能更改繫結,...