将结构函数传递给函数时,它是否按值传递(类似于 值被克隆的常规变量),还是通过 引用(类似于实际的数组变量被传递)?你能给个例子吗。将结构函数传递给函数
回答
你正在通过它的价值。结构中的所有内容都被复制。
你能举个例子吗? – 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