by Welly
pointer:就是電腦把這個東東儲存在一個地方,而這個地方的地址就是所謂的指標~
-->
而他的地址會用一個十六進位制的數字存起來,所以才會看不懂歐~
#include <iostream>
using namespace std;
int main()
{
int a;
cout<<&a;
return 0;
}
//0x61fe1c用法:在要求地址的變數前面加上'&'J個符號:D
-->
J個東東叫做取址符,在變數前面加這個就可以拿到他的地址了!(等於跟電腦說我要這個東東的地址)
#include <iostream>
using namespace std;
int main()
{
int a;
cout<<&a;
return 0;
}
//0x61fe1c
//再看一次有看懂嗎?pointer variable:就是拿來存指標(位置(就是剛剛那個!))的變數歐~
-->
又叫做存址型態~
像整數變數是拿來存整數的,浮點數變數是拿來存浮點數的,而指標變數就是拿來存指標的:D
(一定要同型態歐!)
#include <iostream>
using namespace std;
int main()
{
int a;
int* p;
p=&a;
cout<<p;
return 0;
}
//0x61fe14記得加星星就歐凱!
長醬歐:
欲求變數指標的型態+'*'+變數名稱
(在供蝦餃!!!)
-->
看栗子解釋~
#include <iostream>
using namespace std;
int main()
{
int a;
int* p;
p=&a;
cout<<p;
return 0;
}
//0x61fe14用法:在要求值的指標變數前面加上'*'J個符號
-->
J個東東叫做取值符,在指標變數前面加這個就可以拿到裡面存的東東!(等於跟電腦說我要這個地址裡的東東)
#include <iostream>
using namespace std;
int main()
{
int a=2;
int* p;
p=&a;
cout<<*p;
return 0;
}
//2
#include <iostream>
using namespace std;
int main()
{
int a=2;
int* p;
p=&a;
cout<<&a<<endl;
cout<<a<<endl;
cout<<*a<<endl;
cout<<p<<endl;
cout<<*p<<endl;
cout<<*&a;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int a=2;
int* p;
p=&a;
cout<<&a<<endl;
cout<<*&a<<endl;
cout<<*a<<endl;
cout<<p<<endl;
cout<<*p<<endl;
cout<<&p;
return 0;
}
//0x61fe14
//2
//compiler error
//0x61fe14
//2
//0x61fe10
簡單來說有點像是幫變數娶小明取小名的感覺
用法:
欲取參考的變數型態+'&'+他的小名
(你說得很清楚我聽得很模糊阿阿)
-->
看栗子~
**指標也可以歐~~~:D**
**陣列也可以歐~~~:D**
#include <iostream>
using namespace std;
int main(){
int a=2;
int *p=&a;
int &r=a;
int *&rp=p;
int num[5]={1,2,3,4,5};
int &ra=num[0];
return 0;
}
#include <iostream>
using namespace std;
int main(){
int a=2;
int b=7;
int *p=&a;
int &r=a;
int *&rp=p;
r=3;
cout<<r<<endl;//3
cout<<a<<endl;//3
cout<<p<<endl;//0x61fe0c
rp=&b;
cout<<rp<<endl;//0x61fe08
cout<<p<<endl;//0x61fe08
return 0;
}
#include <iostream>
using namespace std;
int main(){
int a=2;
int &r=a;
int *p=&a;
int*pr=&r;
int *&rp=pr;
cout<<a<<endl;
cout<<r<<endl;
cout<<&a<<endl;
cout<<&r<<endl;
cout<<pr<<endl;
cout<<*pr<<endl;
cout<<rp<<endl;
cout<<&rp<<endl;
return 0;
}
#include <iostream>
using namespace std;
int main(){
int a=2;
int &r=a;
int *p=&a;
int*pr=&r;
int *&rp=pr;
cout<<a<<endl;
cout<<r<<endl;
cout<<&a<<endl;
cout<<&r<<endl;
cout<<pr<<endl;
cout<<*pr<<endl;
cout<<rp<<endl;
cout<<&rp<<endl;
return 0;
}
//2
//2
//0x61fe04
//0x61fe04(r的地址就是a的地址 因為r就是a!)
//0x61fe04
//2
//0x61fe04
//0x61fdf8