C语言练习题-C语言练习题实例87
题目:编写一个程序,回答给定的输出结果。
程序分析:在这个程序中,我们定义了一个名为 student 的结构体,包含一个整型变量 x 和一个字符型变量 c。然后,在 main() 函数中,我们创建一个 student 类型的结构体变量 a,并为其成员变量赋值。接下来,我们调用函数 f(),将结构体变量 a 作为参数传递给函数。在函数中,我们修改了结构体变量 b 的成员变量的值。最后,在 main() 函数中,我们输出结构体变量 a 的成员变量的值。
实例
#include<stdio.h>
struct student {
int x;
char c;
} a;
void f(struct student b);
int main() {
a.x = 3;
a.c = 'a';
f(a);
printf("%d, %c", a.x, a.c);
return 0;
}
void f(struct student b) {
b.x = 20;
b.c = 'y';
}输出结果为:
3, a在这个程序中,虽然我们在函数 f() 中修改了结构体变量 b 的成员变量的值,但是这并不会影响到 main() 函数中的结构体变量 a 的值。这是因为结构体变量是通过值传递的,函数 f() 中的操作只会修改函数内部的副本。因此,最后输出的结果仍然是 3, a。