结构体数组变量赋值(在某个函数中,对结构体数组赋值,如何在其他函数中使用结构体数组中的数据,最好用例子说明一下)

本文目录
在某个函数中,对结构体数组赋值,如何在其他函数中使用结构体数组中的数据,最好用例子说明一下
结构体变量作函数参数就可以了,比如,在下面的程序中,在main()函数中定义了结构体变量stu_1,然后输入学生学号,姓名,调用自定义函数change(),把stu_1作为函数参数。change()的形参stu_2,也是一个结构体变量,就会由stu_1整体赋值,即对应的成员赋值。然后进行学号,姓名的修改。最后输出。
#include《stdio.h》
#include《stdlib.h》
#include《string.h》
struct student
{
int number;
char name;
};
void change(struct student stu_2);
int main()
{
struct student stu_1;
printf("please input student 1 number:\n");
scanf("%d",&stu_1.number);
printf("please input student 1 name:\n");
scanf("%s",stu_1.name);
change(stu_1);
return 0;
}
void change(struct student stu_2)
{
printf("\nbefore change:\n");
printf("student 2 number is:%d\n",stu_2.number);
printf("student 2 name is:%s\n",stu_2.name);
strcpy(stu_2.name,"jim");
stu_2.number=1009;
printf("after change:\n");
printf("student 2 number is:%d\n",stu_2.number);
printf("student 2 name is:%s\n",stu_2.name);
}
运行结果如下,如果有什么不明白的还可以问我
请教Matlab结构体变量赋值问题
1. 结构数组的创建
MATLAB提供了两种定义结构的方式:直接应用和使用struct函数。
a) 使用直接引用方式定义结构
与建立数值型数组一样,建立新struct对象不需要事先申明,可以直接引用,而且可以动态扩充。比如建立一个复数变量x:
x.real = 0; % 创建字段名为real,并为该字段赋值为0
x.imag = 0 % 为x创建一个新的字段imag,并为该字段赋值为0
x =
real: 0
imag: 0
然后可以将其动态扩充为数组:
x(2).real = 0; % 将x扩充为1×2的结构数组
x(2).imag = 0;
在任何需要的时候,也可以为数组动态扩充字段,如增加字段scale:
x(1).scale = 0;
这样,所有x都增加了一个scale字段,而x(1)之外的其他变量的scale字段为空:
x(1) % 查看结构数组的第一个元素的各个字段的内容
ans =
real: 0
imag: 0
scale: 0
x(2) % 查看结构数组的第二个元素的各个字段的内容,注意没有赋值的字段为空
ans =
real: 0
imag: 0
scale:
结构体中的数组如何赋值
设结构体struct A:
#define NAME_SIZE 20
struct A{
int val;
char name;
};
// 定义2个结构体对象
A a1, a2;
赋值方法
memcpy(&a2, &a1, sizeof a2); // 《=》 a2 = a1
2. 对每个成员单独进行赋值
a2.val = a1.val;
for (int i = 0; i 《 NAME_SIZE; ++i)
a2.name;
如何把结构体变量赋值给字符数组
C语言只有在定义字符数组的时候才能用“=”来初始化变量,其它情况下是不能直接用“=”来为字符数组赋值的,要为字符数组赋值可以用string.h头文件中的strcpy函数来完成。
例如:
char
a
=
"123";
/*正确,在定义的时候初始化*/
char
a;
a
=
"123";
/*错误,不能用“=”直接为字符数组赋值*/
strcpy(a,
"123");
/*正确,使用strcpy函数复制字符串*/
所以要对game.cpart,
"123");才对。注意要使用strcpy函数要用#include
包含string.h头文件。
结构体赋值给数组
c语言只有在定义字符数组的时候才能用“=”来初始化变量,其它情况下是不能直接用“=”来为字符数组赋值的,要为字符数组赋值可以用string.h头文件中的strcpy函数来完成。
例如:
char
a
=
"123";
/*正确,在定义的时候初始化*/
char
a;
a
=
"123";
/*错误,不能用“=”直接为字符数组赋值*/
strcpy(a,
"123");
/*正确,使用strcpy函数复制字符串*/
所以要对game.cpart,
"123");才对。注意要使用strcpy函数要用#include
包含string.h头文件。

本文相关文章:
subplot position(matlab,使用subplot时添加总title的方法)
2026年9月19日 00:45
websocket同步模块易语言(使用易语言,怎么写才能和局域网内的电脑时间同步)
2026年9月18日 16:00
flash特效文字(如何使用Flash制作逐渐显示的文字动画)
2026年9月18日 15:45
html文本标签属性标签(如何使用HTML的title属性)
2026年9月16日 19:30
易语言程序需要注册才能使用(易语言程序限制使用次数怎样运行一次注册项的数值减1,到0时程序必须注册)
2026年9月15日 03:30
更多文章:
comecloser是什么意思(the boots came closer and closer句子里的closer是什么词)
2025年9月23日 14:45
praise sb for(praise sb for 后面是加that 从句吗)
2025年9月30日 20:00
tostring和强转string(String s = (String)4; 能不能这样将int类型的数强制转换为String类型)
2025年10月29日 18:00
菜鸟编程步骤(北大青鸟java培训:Java菜鸟入门怎么学)
2026年8月20日 21:00
字符串连接不用strcat(C语言编程:5、编一个程序,将两个字符串连接起来,不要用strcat函数.)
2025年7月21日 11:30
hadoop启动(hadoop搭建中,单独开启资源管理器的命令是)
2025年9月23日 11:15
物联网平台搭建需要多少钱(搭建智慧城市的停车场系统设备费用是多少)
2026年1月4日 18:15
sumifs多条件求和步骤大于等于(sumifs函数中大于等于怎么打)
2025年9月12日 14:00
自适应网站带后台模板(wordpress网站如何实现自适应)
2026年2月16日 11:30
python程序员工资(python工资高还是java的高)
2025年9月22日 13:30
sublime插件下载(sublime 安装atom特效插件怎么安装)
2025年12月5日 00:15










