使用指針可以直接操作內存地址,提高效率,缺點是繞彎比較難理解,本教程為大家介紹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;
}