用指針做函數參數的好處,


用指針做函數參數的好處,

首先要理解函數傳參的過程,函數傳參是復制型的,例如

void modify(int a)

{

a++;

}

void main()

{

int a=5;

modify(a);

printf("%d",a);

}

程序執行完之后,a的值還是5,為什么呢,因為在執行modify函數的時候,是另外開辟了存儲空間,將a的值復制過去,然后modify函數所進行的所有操作都是針對這個新開辟的空間而言的,因此程序執行完之后,a的值並沒有發生改變,

如果我們用指針去傳遞參數,那么久完全不一樣了,

void modify(int * a)

{

(*a)++;

}

void main()

{

int a=5;

modify(&a);

printf("%d",a);

}

程序的執行結果當然是6,因為你傳遞的是a的地址,所以modify函數都是對a地址上面的內容進行操作,用指針作為函數參數的時候,在參數傳遞的時候其實也是另外開辟了一個存儲空間,然后把指針的值復制過去,然后函數對新開辟的這個存儲空間里面的這個指針變量進行操作。

什么時候用指針,什么時候用普通的拷貝的方式傳遞參數,當傳遞的參數是一個結構體,而這個結構體比較大,這個時候最好用指針,如果用拷貝的話,單單花在拷貝的時間就要浪費很多,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM