指針基礎
指針可以完成對內存地址的操作
指針就是用來存儲某個變量的內存地址
int a=100
int b=200
int* pa//表示聲明一個指針,指針指向int類型
pa=&a//&a表示取得a變量的內存地址
這時候輸出pa就是輸出a的內存地址
*pa//表示取得后面(指針)內存地址所指向的數據
*pa=300
這時候輸出a就是等于300
void* p1;//這個指針是指向空類型的指針,可以指向任意類型的地址
void* pl=&a;
但是輸出 * pl 所指向的數據的時候需要強制轉換成所需類型的指針才能輸出
*((int*)pl)//代表強制轉換成int類型的指針并輸出所指向的數據
指針類型與引用類型
//指針* 引用符& reference 指針與引用使用上都是差不多的
int a=100;
int b=200;
int* p1=&a;//這時候輸出p1是a的內存地址
int& r1=a;// 輸出r1引用是a變量的數據也就是100.
r1=b;//相當于a=b,這時候輸出r1,a都等于200
b=400;//這時候給b重新賦值400,不會更改a變量的值,a還是200.
void change(int a,int b)
{
a=100;
b=200
}
main()
{
a=0,b=0;
change(a,b);
//這時候輸出a為0,b為0。因為他們是值類型
}
但是當a和b使用引用符的時候就不一樣了
void change(int& a,int& b)
{
a=100;
b=200
}
main()
{
a=0,b=0;
change(a,b);
這時候輸出a為1000,b為2000