【发布时间】:2020-10-18 23:16:15
【问题描述】:
我正在学习 C 的一些基础知识,目前正在逐步了解数组,更具体地说,我正在逐步了解按引用传递的工作原理。当下面的代码运行时,它返回 10 22。然而,当我通读代码时,根据最后一个命令,似乎变量 a 应该返回 22 而不是 10(这意味着完整的输出将是 22 22 10 22)。为什么这段代码中的变量 a 不会更新为 22?
#include <stdio.h>
void set_array(int array[4]);
void set_int(int x);
int main(void)
{
int a = 10;
int b[4] = { 0, 1, 2, 3 };
set_int(a);
set_array(b);
printf("%d %d\n", a, b[0]);
}
void set_array(int array[4])
{
array[0] = 22;
}
void set_int(int x)
{
x = 22;
}
【问题讨论】:
-
C 没有引用。
set_int采用一个普通的旧值。
标签: c arrays pass-by-reference