C++: 指針基礎
指針 = 地址;
#include <iostream>
using namespace std;
int main() {
int a = 10;
int* p; //聲明一個指針變量p
p = &a; //取a的地址給p 或 指針p指向a的地址
//int* p = &a; 指針p指向a的地址,與上面兩行等價。
cout << "Address = " << &a << endl ;
cout << "Address = " << p << endl;
system("pause");
return 0;
}
解引用 *p,重新賦值給地址指向的內容。
通過解引用的方式來找到指針指向的內存
指針前加 * 代表解引用,找到指針指向的內存中的數據。
🎈注意:這里的*p與 int* p是不一樣的,前者是解引用用於重新賦值給地址指向的內容,后者是聲明一個指針變量p。
//接上面的代碼
*p = 100;
cout << "Address = " << a << endl;
cout << "Address = " << *p << endl;
//通過解引用我們成功改變了指針指向的內容的值。
🎈注意:指針占用的字節空間跟隨系統變化
32位操作系統下指針占用4個字節的空間
64位操作系統下指針占用8個字節的空間
#include <iostream>
using namespace std;
int main() {
int a = 10;
int* p = &a;
cout << " int*所占用的字節" << sizeof(p) << endl;
system("pause");
return 0;
}
指針相關章節可參考C語言。