回覆列表
  • 1 # 使用者3040822723598

    在C和C++中,指標一般指的是某塊記憶體的地址,透過這個地址,我們可以定址到這塊記憶體;而引用是一個變數的別名,例如我們給小明起了個外號:明明,那我們說明明的時候,就是說小明。對於指標來說,它是一個地址,這個地址是一個數值,那麼就意味這個數值可以為0(空指標),也可以為其他,即指標可以不指向任何東西。而對於引用來說,他是一個外號,外號一定是“某個存在物體”的外號,所以引用不能為空,即不能存在空引用。根據以上可知指標和引用的一個重要不同:指標可以為空,引用不能為空。這就意味著我們拿到一個引用的時候,是不需要判斷引用是否為空的,而拿到一個指標的時候,我們則需要判斷它是否為空。這點經常在判斷函式引數是否有效的時候使用。例如:

    引用修飾函式引數還可以提高效率,例子如下:我們根據前面的描述,還可以知道指標可以多次賦值,即在某時刻可以指向地址1,換個時候可以指向地址2,例如:而引用則不同,引用只能在初始化的時候就賦好值,之後就不能改變了,用外號的例子來說就是"明明"這個外號在出現的時候就是代指小明,之後“明明”這個外號就綁在小明身上了,它不能過段時間換成小暗的外號。程式碼如下:由以上可以,當我們需要某個是否指向為空的時候,我們就需要使用指標了,還有指向的物件需要變化的時候,我們也需要使用指標。其他地方一般推薦引用。注意:以上只是粗淺的描述,關於指標和引用的話題,要了解深的話還需要看更多,推薦看 《effective C++》和《more effective C++》(這本書的第一條就是講指標和引用的區別),看目錄可以很明顯看到講引用的條款。C++需要注意的細節比較多,需要下功夫,好好加油,祝題主學習順利。

  • 中秋節和大豐收的關聯?
  • 英國當時鴉片戰爭時簽訂了什麼條約?