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
。