使用指標可以直接操作記憶體位址,提高效率,缺點是繞彎比較難理解,本教程為大家介紹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;
4)a 是整型變數,裡面裝的是整數,&a 是取地址操作符,得到的是地址,
p 是一個指標變數,裡面存放的地址,p 給的是 a 的地址,所以兩個地址是相同的;
5)接下來我們來看利用指標操作它對應的變數,繼續輸入下面的代碼;
cout << "*p= " << *p << endl;
6)這兒的 *p 不是定義指標,因為星號 * 前面沒有類型,而且 p 已經定義過,不能重複定義,
這兒的 *p 是間接引用,指向的是 a,因為 p 裡存放的是 a 的地址,因此 *p 的值是 25;
7)利用 *p 可以對變數 a 進行操作,例如下面的代碼給 a 重新賦值;
*p = 16;
cout <<"a = " << a;
#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;
}