1.取址
int c=5
int d*=&c;
1.1陣列變數實際為指標
int size;
int c[size];
int *d;
int *f;
d=c;
f=&c[0];
cout<<d<<endl;
cout<<f<<endl;
都可將c[0]位址存到指標變數
1.2
int size=5;
int c[size];
c[1]=100;
int *d;
int *f;
d=c;
f=&c[0];
cout<<*(f+1)<<endl; // print 100
cout<<f[1]<<endl; // print 100
2.參照:是變數的別名
int c=5
int &d=c
錯誤:不能更改參照
int &d=c
&d=f
3.函數指標
int cc( );
int main(int argc, char** argv) {
int (*i)()=cc;
i();
}
int cc(){
cout<<"asd";
return 0;
}
3.1函數傳參
int cc( );
int gg(int (*dd)());
int main(int argc, char** argv) {
gg(cc);
}
int cc(){
cout<<"asd";
return 0;
}
int gg(int (*dd)()){
dd();
return 0;
}
4.指標的指標
int main(int argc, char** argv) {
int a=5; //&a 位0x123
int *c=&a; &c位0x126 存0x123
int **f=&c; &f位0x129 存0x126
cout <<**f;