將結構函數傳遞給函數時,它是否按值傳遞(類似於 值被克隆的常規變量),還是通過 引用(類似於實際的數組變量被傳遞)?你能給個例子嗎。將結構函數傳遞給函數
回答
你正在通過它的價值。結構中的所有內容都被複制。
你能舉個例子嗎? – bengbeng
@bengbeng寫你自己的例子。你知道如何做一個功能。使用'struct S'作爲參數而不是'int'或其他。 –
Struct以一種方式實現,即分配一塊內存來存儲它的成員。當你將一個結構體作爲參數傳遞時 - 你可以把它想象爲將這塊內存複製到一個函數中。 –
在C中一切都是按值傳遞,即使傳遞指針也是按值傳遞。 而且你永遠不能改變實際參數的值。
這是從K &順便說一句。我建議閱讀那本書。爲您節省很多您將來可能會發布的問題。
一個結構是按值傳遞:
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;
}
- 1. 將結構傳遞給構造函數
- 2. 將結構數組傳遞給函數
- 3. 將結構傳遞給函數
- 4. 將結構傳遞給函數c
- 5. C++將結構傳遞給函數
- 6. 將變量傳遞給結構函數
- 7. 將函數傳遞給構造函數
- 8. 將構造函數傳遞給函數
- 9. 將函數引用傳遞給該函數中的結構體
- 10. 將函數結構的指針傳遞給另一個函數
- 11. 將數據傳遞給構造函數
- 12. 將參數傳遞給構造函數
- 13. Typedef結構並傳遞給函數
- 14. 傳遞結構與將變量傳遞給函數C
- 15. 將結構和結構成員傳遞給函數
- 16. 將結構傳遞給函數會導致嵌套結構
- 17. 將結構(指向結構?的指針?)傳遞給函數
- 18. 將結構數組作爲參數傳遞給函數
- 19. 將enum傳遞給構造函數
- 20. 將GWT構件傳遞給js函數
- 21. 將std :: shared_ptr傳遞給構造函數
- 22. 將NULL傳遞給構造函數
- 23. 將事件傳遞給構造函數
- 24. 將ImageView傳遞給構造函數
- 25. 將函數傳遞給jQuery .ready()函數
- 26. 將函數傳遞給函數SML
- 27. 將此函數傳遞給函數
- 28. 將函數指針傳遞給函數
- 29. Kthread:將結構傳遞到函數
- 30. 將內部變量傳遞給結構構造函數C++
默認情況下,它是按值傳遞,除非你傳遞一個指針結構。 –
傳遞給函數的結構將始終作爲指向結構的指針到達函數,實際上是指向結構的克隆指針。注意:數組不會傳遞給函數,而是傳遞數組的地址,實際上是數組地址的克隆。 – user3629249