引用-引用是乙個物件的別名,主要用於函式引數和返回值型別。
指標是位址。
1.引用:宣告時必須初始化,並且以後不能改變(即不能給引用重新賦值),但是指定的物件其內容可以改變。
指標:宣告可以不初始化,並且可以被重新賦值以指向另乙個不同的物件
2.從記憶體分配上看,程式為指標變數分配記憶體區域,而不為引用分配記憶體區域。
3.不存在指向空值的引用這個事實。
4.引用比指標更安全。由於不存在空引用,並且引用一旦被初始化為指向乙個物件,它就不能被改變為另乙個物件的引用,因此引用很安全。對於指標來說,它可以隨時指向別的物件,並且可以不被初始化,或為null,所以不安全。
5.引用的大小是所指向的變數的大小,因為引用只是乙個別名而已;指標是指標(位址)本身的大小,32位系統下,一般為4個位元組。
指標常量vs引用常量
指標常量:定義"int* const pointer=&b"告訴編譯器,pointer(位址)是常量,不能作為左值進行操作,但是允許修改間接訪問值,即*pointer(位址所指向記憶體的值)可以修改。
而引用與生俱來的屬性,無需使用const。
C 指標和引用
在深入介紹之前我們首先來看一下指標和引用的定義 指標和引用的區別,然後分別針對指標和引用展開討論,深入細節為何有這些差異。指標和引用的定義,下面用通俗易懂的話來概述一下 而宣告指標是可以不指向任何物件,也正是因為這個原因,使用指標之前必須做判空操作,而引用就不必。其次,引用不可以改變指向,對乙個物件...
C 引用和指標
引用和指標看上去差不多,看上去差不多,其實男寶寶和女寶寶是不一樣的 用起來還是有一定差距。本人菜鳥僅將遇到的問題記錄備案,以便日後翻查 ptrfunc.h ifndef ptrfunc h define ptrfunc h typedef int func int,int struct aa end...
C 指標和引用
有了變數名,為什麼還需要乙個別名呢?c 之所以增加引用型別,主要是把它作為函式引數,以擴充函式傳遞資料的功能 到目前為止我們介紹過函式引數傳遞的兩種情況 1 將變數名作為實參和形參 這時傳給形參的是變數的值,傳遞是單向的 如果在執行函式期間形參的值發生變化,並不傳回給實參 因為在呼叫函式時,形參和實...