定義:
int num=7;
int* p=#//這裡的指標p指向了num所對應的位址
傳參:null指標
int *ptr=null;
if(ptr)//如果指標非空
if(!ptr)//如果指標為空
指標運算
指標和陣列
int var[max]=;
var++;//錯誤,相當於var=var+1陣列名對應指標常量,為不可修改的左值。
*(var+1)=100//正確,修改指標位址指向的數值。
指標陣列和陣列指標
int *ptr[max];按照優先順序,ptr為乙個容量為max的陣列,陣列中的元素型別為指向整形的指標。簡而言之即陣列元素儲存了位址。指標陣列可以指向字串陣列
指向指標的指標
int var=3000;//宣告乙個int型的變數,變數位址記憶體著var的值3000;
int ptr=&var;//宣告乙個int型的指標,指向變數var的位址;
intpptr=&ptr;//宣告乙個int型的指標,指向ptr的位址,
*pptr對二級指標pptr取值,也就是ptr的位址。
**pptr對ptr的位址取值
值傳遞、指標傳遞和引用傳遞
指標傳遞:#include using namespace std;
void swap(int*x,int*y)
int main()
int main();
int main(){
int x=5,y=6;
demo d;
int *p;
p=&x;
p=&y;//指標允許重新指向
int &r=x;
//&r=y;//編譯錯誤,引用不允許重新賦值
r=y;//r的值變為6
p=null;
//&r=null;//編譯錯誤,不能引用空值
r++;//r值變為7
cout<<&p<<" "<<&x"
qq.a=8;//引用使用"."
cout0x7ffd09172c20 0x7ffd09172c18
0x7ffd09172c18 0x7ffd09172c18
0x47
用於引數傳遞:
無論何時,當我們不需要重新修改指向時,引用要優於指標。
綜上所述,當你能使用引用的時候盡量使用引用,當你必須使用指標的時候就是用指標。但是如果我們想編寫用c和c++編譯器編譯的c**,我們就必須限制自己使用指標。
詳解c 指標的指標和指標的引用
展示一下使用指標的指標和指標的引用修改傳遞給方法的指標,以便更好的使用它。這裡說的指標的指標不是乙個二維陣列 當我們把乙個指標做為引數傳乙個方法時,其實是把指標的複本傳遞給了方法,也可以說傳遞指標是指標的值傳遞。如果我們在方法內部修改指標會出現問題,在方法裡做修改只是修改的指標的copy而不是指標本...
詳解c 指標的指標 和 指標的引用
注意 指向指標的引用是某一指標的別名,同變數的引用一樣。引用絕對不是單獨存在的,它一定是指示某個已經存在的東西的,它一定是某個已經存在的物體的 別名 而且它如果 被初始化賦值成某個變數後 它就始終是這個變數的替身 對引用的改變 就是對這個變數的改變 展示一下使用指標的指標和指標的引用修改傳遞給方法的...
詳解c 指標的指標和指標的引用
展示一下使用指標的指標和指標的引用修改傳遞給方法的指標,以便更好的使用它。這裡說的指標的指標不是乙個二維陣列 為什麼需要使用它們 當我們把乙個指標做為引數傳乙個方法時,其實是把指標的複本傳遞給了方法,也可以說傳遞指標是指標的值傳遞。如果我們在方法內部修改指標會出現問題,在方法裡做修改只是修改的指標的...