C/C++指針和引用的區別


1.指針有自己的一塊空間,而引用只是一個別名;

2.使用sizeof看一個指針的大小是4,而引用則是被引用對象的大小;

3.指針可以被初始化為NULL,而引用必須被初始化且必須是一個已有對象 的引用;

4.作為參數傳遞時,指針需要被解引用才可以對對象進行操作,而直接對引 用的修改都會改變引用所指向的對象;

5.可以有const指針,但是沒有const引用;

6.指針在使用中可以指向其它對象,但是引用只能是一個對象的引用,不能 被改變;

7.指針可以有多級指針(**p),而引用至於一級;

8.指針和引用使用++運算符的意義不一樣;

9.如果返回動態內存分配的對象或者內存,必須使用指針,引用可能引起內存泄露。

 

1、引用:

C++是C語言的繼承,它可進行過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。引用就是C++對C語言的重要擴充。引用就是某一變量的一個別名,對引用的操作與對變量直接操作完全一樣。引用的聲明方法:類型標識符 &引用名=目標變量名;引用引入了對象的一個同義詞。定義引用的表示方法與定義指針相似,只是用&代替了*。

2、指針:

指針利用地址,它的值直接指向存在電腦存儲器中另一個地方的值。由於通過地址能找到所需的變量單元,可以說,地址指向該變量單元。因此,將地址形象化的稱為“指針”。意思是通過它能找到以它為地址的內存單元。

區別:

1、指針有自己的一塊空間,而引用只是一個別名;

2、使用sizeof看一個指針的大小是4,而引用則是被引用對象的大小;

3、指針可以被初始化為NULL,而引用必須被初始化且必須是一個已有對象的引用;

4、作為參數傳遞時,指針需要被解引用才可以對對象進行操作,而直接對引用的修改都會改變引用所指向的對象;

5、可以有const指針,但是沒有const引用;

6、指針在使用中可以指向其它對象,但是引用只能是一個對象的引用,不能 被改變;

7、指針可以有多級指針(**p),而引用至於一級;

8、指針和引用使用++運算符的意義不一樣;

9、如果返回動態內存分配的對象或者內存,必須使用指針,引用可能引起內存泄露。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM