运行结果:
1001,ZhangDa,1098.0
题目分析:
strcpy
是字符串复制,在头文件
string.h
中定义。
如果
s1
和
s2
都是字符串,strcpy(s1,
s2);
的结果就是把
s2
的内容复制到
s1。
需要用
strcpy
是因为
C
语言不允许字符串赋值,所以可以有:
a
=
1002;
c
=
1202.0;
却不可以有:
b
=
"ChangRong"
/*
错误
*/
必须写成:
strcpy(b,
"ChangRong");
因此函数
f
的内容就是把新的值赋值给结构体
t
的各个字段。那么为什么输出的结果仍然是主函数中结构体
a
的初值呢?那是因为函数
f
的参数用了结构体型,跟基本类型一样,是“值传递”:t
复制了主函数中
a
的内容,但是函数结束,返回主函数的时候,t
被丢弃,并不改变原来
a
的内容。
运行结果1001,ZhangDa,1098.0
strcpy
是头文件
将str2复制到str1;
因为函数f是按值传递,所以变量a的值是刚开始赋的值
所以运行结果是1001,ZhangDa,1098.0
如果你要运行结果是1002,ChangRong,1202.0
那么函数要按地址传递
用引用或者指针;
多数用引用
void
f(A
&t);