求一个C语言程序的运行结果
#include<stdio.h>#include<string.h>structA{inta;charb[10];doublec;};voidf(structAt);m...
#include<stdio.h> #include <string.h> struct A { int a; char b[10]; double c;}; void f(struct A t); main() { struct A a={1001,"ZhangDa",1098.0}; f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c); } void f(struct A t) { t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;} 其中strcpy是什么意思
展开
展开全部
运行结果: 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 的内容。
展开全部
函数名: strcpy 功能: 串拷贝 用法: char *strcpy(char *str1, char *str2); 程序例: #include <stdio.h> #include <string.h> int main(void) { char string[10]; char *str1 = "abcdefghi"; strcpy(string, str1); printf("%s\n", string); return 0; }
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询