[英]Pass a Struct to a Function
將結構傳遞給函數時,它是否通過值傳遞(類似於克隆值的常規變量),還是通過引用傳遞(類似於傳遞實際變量的數組)? 能給我舉個例子嗎。
在C中,一切都是按值傳遞的,即使傳遞指針也是按值傳遞的。 而且你永遠不能改變實際參數的值。
順便說一句,這是來自K&R。 我建議閱讀那本書。 為您節省許多可能會在未來發布的問題。
結構按值傳遞:
struct S {
int a,b;
};
void f(struct S s) {
printf("%d\n", s.a+s.b);
s.a = 0; /* change of a in local copy of struct */
}
int main(void) {
struct S x = { 12,13};
f(x);
printf ("Unchanged a: %d\n",x.a);
return 0;
}
你是按價值傳遞的。 結構中的所有內容都被復制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.