日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++学习笔记(五)--指针、NULL、引用

發布時間:2023/12/13 c/c++ 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++学习笔记(五)--指针、NULL、引用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. C++中已經定義了NULL為0:#define NULL 0
指針p可以指向空值NULL即 p = NULL;表示該指針變量不指向任何變量。

  注意:指針未初始化與指針為NULL不同,
  p = NULL;是有值的,為0;
  而在定義時:int *p;這時候碎雖然未對p初始化,但不代表p無值,而是此時的值是一個無法預料的值,p可以指向任何一個 未指定的單元,這是非常危險的,所以在引用指針變量之前必須對其初始化。

任何指針變量都可以與NULL做 = 與 != 比較;


補充知識:

2.兩個指針指向同一個數組可以比大小,指向前面元素的指針變量小于指向后面元素的指針變量。

3.對不同類型的指針賦值要強制轉化:
  int *p1;
  char *p2;
  float *p3
  p1 = (int *)p2;
  p2 = (char *)p3;

4.引用:為變量起一個別名,不適用于指針和數組。
  int a;
  int &b = a;/*表示b就是a,占用同一存儲單元,只是名字不一樣而已,即b具有a的地址,在聲明引用時,必須同時初始化,b這個別名被使用后,不可在作為別的變量的名稱。如 int &b = c; */

  引用可以作為函數參數,當實參傳遞給形參時,就相當于為變量起了一個別名,在被調函數中,變量的別名的值別改變了,則函數外部對應的原變量也改變了,因為它們使用同一存儲空間,使用同一地址,這彌補了C中函數參數只傳值的不足(傳指針也是傳指針
的值)。
#include<iostream>
using namespace std;

int main(){

  void swap( int & , int & );//&是引用,不是取地址
  int i = 1, j = 2;
  swap( i,j );
  cout <<"i=" <<i <<endl <<"j=" <<j <<endl;
  return 0;
}

void swap( int &a, int &b ){ /*調用到次函數時,實際上是把i的地址賦給a,j的地址賦給b,這時候a,b分別是i,j的別名,當函數內部的值改變了,自然而然的外部的值也改變了 ==》這就是 地址傳遞方式《==*/

  int temp;
  temp = a;
  a = b;
  b = temp;
}
  注意和指針區別:指針是要單獨開辟內存空間來聲明指針變量的,而引用不用。

  引用可以代替指針完成很多工作。

轉載于:https://www.cnblogs.com/ysys/p/5689824.html

總結

以上是生活随笔為你收集整理的C++学习笔记(五)--指针、NULL、引用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。