當前位置:成語大全網 - 書法字典 - C語言指針作為函數參數的優勢

C語言指針作為函數參數的優勢

首先,妳要知道如何給函數傳遞參數。

復制函數參數,例如:

void修改(int a)

{

a++;

}

void main()

{

int a = 5;

修改(壹);

printf("%d ",a);

}

這個節目的答案還是5。為什麽?

因為調用modify(a)時,在執行modify函數時會打開另壹個內存空間,並復制main中A的值。修改函數中的所有操作都是相對於這個新打開的內存空間的,對原來的a沒有任何改變。

現在我們來談談指針。如果用指針傳遞參數,就完全不壹樣了。指針,說白了就是指變量的內存地址。類似地,上面的例子:

void modify(int * a)

{

(* a)++;

}

void main()

{

int a = 5;

修改(& ampa);

printf("%d ",a);

}

答案當然是6。

因為妳傳入的是A的地址,所以modify函數中的所有操作都是對A的地址的內容進行操作,也就是對A進行操作,所以modify函數不需要返回這個數,main中A的值也會發生變化。因為大家操作的是同壹個內存空間,而且上面沒有指針,所以modify操作的是另壹個新打開的內存空間,但是這個內存空間的初始值和a壹樣。

現在我們來談談傳遞參數。事實上,妳“為什麽函數參數是字符串的多用途指針?”我不太明白那句話。C中的字符串傳遞參數似乎只是指針的壹種形式(除非使用了結構)。

何時使用指針,何時使用副本。當傳遞的參數是壹個結構,並且這個結構比較大的時候,這個時候用指針比較好,因為如果使用復制的話,光是復制花費的時間就浪費了,如果頻繁調用這個函數,那麽這個效率問題就出現了。

當妳想在子函數中操作妳的主調用函數中的變量時,也可以使用指針作為參數,這樣子函數就可以不使用return。如果不使用指針,應該在子函數的末尾加壹個返回x。將該數字作為返回值返回。

多看書,多寫程序,壹開始會對指針很迷茫。寫多了自然就懂了。