簡體   English   中英

將結構傳遞給函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM