int sum(int a, in">

c语言返回值怎么传输

来源:这里教程网 时间:2026-02-21 16:50:08 作者:

C语言中函数返回值的传输

函数返回的是一个值,它在函数调用时传输给调用它的函数。在 C 语言中,函数返回值的传输方式取决于返回值的类型。

基本类型(如 int、char、float)的返回值

对于基本数据类型的返回值,它将按值传输给调用函数。这意味着返回的是返回值的副本,而不是对原始值的引用。例如:

立即学习“C语言免费学习笔记(深入)”;

<code class="c">int sum(int a, int b) {
  return a + b;
}
int main() {
  int x = 5;
  int y = 10;
  int result = sum(x, y); // result 中将包含返回值 15
  return 0;
}</code>

结构体和联合体的返回值

结构体和联合体是复合数据类型,它们的返回值按引用传输。这意味着返回的是对原始值的引用,而不是副本。例如:

<code class="c">struct Person {
  int age;
  char name[20];
};
struct Person getPerson() {
  struct Person person;
  person.age = 25;
  strcpy(person.name, "John Doe");
  return person;
}
int main() {
  struct Person person = getPerson(); // person 中将包含函数中创建的 Person 对象
  person.age = 30; // 修改 person 的 age 也会修改原对象
  return 0;
}</code>

指针类型的返回值

指针变量也是按值传输的。但是,由于指针指向的是内存中的地址,因此返回的指针实际上是对原始地址的引用。例如:

<code class="c">int *getArray() {
  static int arr[] = {1, 2, 3, 4, 5};
  return arr;
}
int main() {
  int *ptr = getArray(); // ptr 指向函数中定义的数组
  ptr[0] = 10; // 修改通过指针访问的元素也会修改原数组
  return 0;
}</code>

总结

基本类型按值传输。 结构体和联合体按引用传输。 指针按值传输,但它们所指向的地址按引用传输。

相关推荐