萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> C++基礎教程-指針

C++基礎教程-指針

  使用指針可以直接操作內存地址,提高效率,缺點是繞彎比較難理解,本教程為大家介紹C++語言中的指針。

  1、啟動 Geany

  1)點菜單“應用程序-編程-Geany”啟動 Geany ,新建一個 c++ 源程序;

  2)點菜單“文件-另存為”命令,以“ptr”為文件名,保存文件到自己的文件夾;

  2、指針變量

  1)使用指針前也要先定義,用 * 號來定義,賦值用其他變量的地址,也可以初始化為空 NULL;

  輸入下面的代碼:

      int a = 25;

      int *p = NULL;

      p = &a; 

  2)第一句定義一個整型變量 a,每個變量都有內存地址,用 &a 命令得到變量的地址,

  第二句定義一個指針變量,類型是整型,星號 * 是定義符號,NULL 表示賦值為空值,

  第三句是給指針變量 p 賦值,值是變量 a 的地址,格式形如 0x123456;

  3)接著我們來顯示一下各個變量的值,跟各自的類型相對應;

      cout << "a = " << a;

      cout << "&a= " << &a;

      cout << "p = " << p; 

C++基礎教程-指針 三聯教程

  4)a 是整型變量,裡面裝的是整數,&a 是取地址操作符,得到的是地址,

  p 是一個指針變量,裡面存放的地址,p 給的是 a 的地址,所以兩個地址是相同的;

  5)接下來我們來看利用指針操作它對應的變量,繼續輸入下面的代碼;

      cout << "*p= " << *p << endl;

C++基礎教程-指針

  6)這兒的 *p 不是定義指針,因為星號 * 前面沒有類型,而且 p 已經定義過,不能重復定義,

  這兒的 *p 是間接引用,指向的是 a,因為 p 裡存放的是 a 的地址,因此 *p 的值是 25;

  7)利用 *p 可以對變量 a 進行操作,例如下面的代碼給 a 重新賦值;

      *p = 16;

      cout <<"a = " << a; 

C++基礎教程-指針

  #include <iostream>

  using namespace std;

  int main(int argc, char** argv)

  {

      int a = 25;

      int *p = NULL; //定義指針變量,並初始化

      p = &a;        //賦值給指針變量

     

      cout << "a = " << a  << endl;

      cout << "&a= " << &a << endl;

      cout << "p = " << p  << endl;

     

      cout << endl;

     

      cout << "*p= " << *p << endl;

      cout << endl;

     

      *p = 16;     //間接引用,不是定義指針

      cout <<"a = " << a;

      return 0;

  } 

copyright © 萬盛學電腦網 all rights reserved