C++語言中 *與&的作用分別是什麼啊?
C++語言中 *與&的作用分別是什麼啊?
從概念上講。指標從本質上講就是存放變數地址的一個變數,在邏輯上是獨立的,它可以被改變,包括其所指向的地址的改變和其指向的地址中所存放的資料的改變。
而引用是一個別名,它在邏輯上不是獨立的,它的存在具有依附性,所以引用必須在一開始就被初始化,而且其引用的物件在其整個生命週期中是不能被改變的(自始至終只能依附於同一個變數)。
★相同點:
●都是地址的概念;
指標指向一塊記憶體,它的內容是所指記憶體的地址;而引用則是某塊記憶體的別名。
★不同點:
●指標是一個實體,而引用僅是個別名;
●引用只能在定義時被初始化一次,之後不可變;指標可變;引用“從一而終”,指標可以“見異思遷”;
●引用沒有const,指標有const,const的指標不可變;
●引用不能為空,指標可以為空;
●“sizeof 引用”得到的是所指向的變數(物件)的大小,而“sizeof 指標”得到的是指標本身的大小;
●指標和引用的自增(++)運算意義不一樣;
●引用是型別安全的,而指標不是 (引用比指標多了型別檢查)
從概念上講。指標從本質上講就是存放變數地址的一個變數,在邏輯上是獨立的,它可以被改變,包括其所指向的地址的改變和其指向的地址中所存放的資料的改變。
而引用是一個別名,它在邏輯上不是獨立的,它的存在具有依附性,所以引用必須在一開始就被初始化,而且其引用的物件在其整個生命週期中是不能被改變的(自始至終只能依附於同一個變數)。
★相同點:
●都是地址的概念;
指標指向一塊記憶體,它的內容是所指記憶體的地址;而引用則是某塊記憶體的別名。
★不同點:
●指標是一個實體,而引用僅是個別名;
●引用只能在定義時被初始化一次,之後不可變;指標可變;引用“從一而終”,指標可以“見異思遷”;
●引用沒有const,指標有const,const的指標不可變;
●引用不能為空,指標可以為空;
●“sizeof 引用”得到的是所指向的變數(物件)的大小,而“sizeof 指標”得到的是指標本身的大小;
●指標和引用的自增(++)運算意義不一樣;
●引用是型別安全的,而指標不是 (引用比指標多了型別檢查)
相關文章
- Python語言中/與//的區別是什麼?Python
- Python語言中__init__與__new__的區別是什麼?Python
- 不同ip代理的作用分別是什麼
- Golang語言中的method是什麼Golang
- go語言中make和new有什麼作用以及區別?Go
- Golang語言中的interface是什麼(下)Golang
- Golang語言中的interface是什麼(上)Golang
- C語言中的關鍵字有哪些,分別代表什麼意思C語言
- 在R語言中,因子是什麼R語言
- "->" 在c語言中是什麼意思?C語言
- Python語言中=和==有什麼區別?Python
- c語言中作用域和儲存期的區別C語言
- c語言中的作用域C語言
- C語言中陣列溢位是什麼C語言陣列
- 為什麼說js是弱型別語言,它的優缺點分別是什麼?JS型別
- python語言中類和函式的作用及區別!Python函式
- 網路安全中三保一評分別是什麼?有什麼作用?
- 前端頁面有哪三層構成,分別是什麼?作用是什麼?前端
- go語言中變數前加 *和& 有啥區別啊Go變數
- static在C語言中的作用C語言
- Python的容器有哪些?分別有什麼作用?Python
- Go語言中的變數作用域Go變數
- C 語言中 static 的作用介紹
- Go語言中結構體打Tag是什麼意思?Go結構體
- 嵌入式C語言中的組成結構是什麼C語言
- MySQL、NoSQL分別是什麼?有什麼區別?MySql
- Python學習教程_Python語言中=和==有什麼區別?Python
- Python語言中的模組、包、庫之間有什麼區別?Python
- 程式語言中為什麼使用分號作為語句結束符?
- C語言中volatile關鍵字的作用C語言
- SQL優化器-RBO與CBO分別是什麼SQL優化
- Linux中type命令有什麼作用?語法格式是什麼?Linux
- C++ 這個語句中[&]是什麼意思C++
- C++和c語言的分別C++C語言
- 什麼是@Component,@Component的作用是什麼
- Python語言中變數名是什麼?命名規則有哪些?Python變數
- c語言以及高階語言中的float到底是什麼以及IEEE754C語言
- Java中活鎖是什麼啊?Java