1.指針的含義-變量的地址
a.指針:C語言中用“指針”來表示內(nèi)存地址(即:指針指向了內(nèi)存地址)错沽,即“指針”可理解為“變量的地址”伪货,指針是一個unsigned類型的整數(shù)
b.變量的地址:即變量占用的字節(jié)中第一個字節(jié)的地址叶圃,計算機通過該地址找到某個變量
c.如何獲得變量的地址:在變量前面加上“&”趟济,就表示變量的地址
2.指針變量
a.指針變量:用來存放指針(即變量的地址)纷宇,表示方式是在某種數(shù)據(jù)類型后面加星號*
int* p;
double* p;
char* p;
b.給指針變量賦值的方式:把變量的地址取出來寄悯,然后賦給對應(yīng)類型的指針變量
int a;
int* p = &a;
注意:地址&a是賦值給p而不是*p的(即:星號是類型的一部分)
3.指針與數(shù)組
a.數(shù)組名稱也可作為數(shù)組首地址使用
int a[10]=1;
int* p = a; //相當(dāng)于int* p = &a[0]
b.兩個int型的指針相減灌闺,等價于在求兩個指針之間相差了幾個int
4.使用指針變量作為函數(shù)參數(shù)
a.含義:即把變量的地址傳入函數(shù)。如果在函數(shù)中對這個地址中的元素進行改變坏瞄,原先的數(shù)據(jù)就會確實地被改變桂对。
void change(int* p){
*p=233;
}
b.單向一次性的值傳遞:相當(dāng)于產(chǎn)生一個副本
void swap(int a,int b){
int temp=a;
a=b;
b=temp;
}
c.使用指針變量作為參數(shù)時的地址傳遞:只有在獲取地址的情況下對元素進行操作,才能真正地修改變量
void swap(int* a,int* b){
int temp=*a;
*a=*b;
*b=temp;
}
5.引用
a.是C++的一個強有力的語法鸠匀,使用時文件須保存為.cpp類型
b.引用:不產(chǎn)生副本蕉斜,而是給原變量起了個別名。對引用變量的操作就是對原變量的操作
c.格式:在函數(shù)的參數(shù)類型后面加個&(注意:引用并不是取地址的意思)
void change(int &x){
x=1;
}
d.指針的引用:
void swap(int* &p1,int* &p2){
int* temp=p1;
p1=p2;
p2=temp;
}