问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言结构体问题

发布网友 发布时间:2022-04-24 18:27

我来回答

2个回答

热心网友 时间:2022-04-19 01:59

实参才拥有内存,形参是不分配内存的
在调用函数时,一般传递的是对象实例的一个地址
所以这里
定义的结构体变量 struct student stu
stu才占有系统资源
而print(stu)函数在未被调用的时候是不分配任何内存的
而调用的print(struct student stu)时 传递进来的是stu的一个拷贝, 它和原来的stu有相同属性
对于输出函数来说,这样的操作可能不影响输出结果
其实建议参数定义成print(struct student &stu)的形式,因为假如你在函数内有赋值语句或者其他操作的话,才会对实例有效
意思就是,参数里的stu 是另外一个对象,这个对象是复制了你定义的stu对象,
就像一个人被克隆了一样,这个克隆人并不是原来那个人,所以这个克隆人的生老病死都不会影响原来的这个人
如果还不理解的话 我可以写一段代码给你看看:
#include <stdio.h>
struct student
{
int sno;
};
void print(student stu,int n)
{
stu.sno=n;
};
void main()
{
void print(student stu,int n);
student stu;
stu.sno=10;
print(stu,1);
printf("%d\n",stu.sno);
}
你觉得这个时候程序输出是多少?
应该是10 . 这就印证了我说的,形参实例在传递时候,传递进去的只是一个拷贝

但是假如将print() 函数改成这样定义void print(student &stu,int n)
输出就是1 ,这是传递的就是stu这个对象实例
以上回答你满意么?

热心网友 时间:2022-04-19 03:17

付费内容限时免费查看回答先定义一个结构体Student,它包含四个成员:学号(number)、姓名(name)、电话(telphone)、地址(address),然后定义一个结构体数组stu[3],输入3个学生的数据,再输出。运行结果如下图所示,请编程实现相应功能。

我的程序如下:(想修改一下用stu[3]定义,不知道怎么定义,用的是student1,student2,student3) 求指点。。

#includevoid main()

{struct student

{int number;

char name[20];

int telphone;

char address[20];

}student1,student2,student3;

printf("请输入第1个学生的信息:\n");

scanf("%d%s%d%s",&student1.number,student1.name,&student1.telphone,student1.address);

printf("\n");

printf("请输入第2个学生的信息:\n");

scanf("%d%s%d%s",&student2.number,student2.name,&student2.telphone,student2.address);

printf("\n");

printf("请输入第3个学生的信息:\n");

scanf("%d%s%d%s",&student3.number,student3.name,&student3.telphone,student3.address);

printf("\n");

printf("学生信息如下:\n");

printf("student num:%d name:%s telphone:%d address:%s \n",student1.number,student1.name,student1.telphone,student1.address);

printf("student num:%d name:%s telphone:%d address:%s \n",student2.number,student2.name,student2.telphone,student2.address);

printf("student

希望可以帮到你

提问学生的信息要连续输入如

1 Li 99

2 Shi 78

3 Wei 92

这样子呢?

回答scanf("%d",&stu[count].id)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 火锅餐厅厨房有哪些 小火锅厨房设备有哪些 谁知道在c#中如何使用结构体Struct C/C++ 类和结构体的差别 组成数组元素的特点是 组成结构体元素的特点是 c++结构体的概念 岩石,岩体,岩块,结构体的区别 C#中结构体到底有什么用? C程序结构体的特点 C++中什么叫结构体? 结构体里是不是不能定义函数 结构体,共用体和枚举类型的基本特点及区别 结构体、共用体和枚举类型的基本特点及区别是什么? 一定要手机号才能申请吗 微信就必须在手机上登陆着、才可以登陆电脑吗? 薄膜键盘的触发键程多少 塑料薄膜式键盘的介绍 什么是机械键盘、薄膜键盘? 薄膜键盘与机械键盘的差异在哪! 薄膜键盘可以换轴吗 薄膜键盘的产品结构 质量体系认证怎么样啊,找哪里能办下来? C语言的结构体,枚举类型,在程序中的作用是什么,详细点? 结构体类型有哪些好处 c# 中 怎样定义结构体? 请问迅雷影音播放本地右键没有投屏选项什么原因那 你好,请问微信公众平台权限可以转让吗?是微信公众平台注册人可以转让吗?因为是学生会的,要运营。 大白菜Win10系统多重网络怎么解决 网络白菜是什么意思 现在市场上白菜多少钱一斤呀? 两个 大白菜 网站,哪一个才是正宗的真的? 白菜的网络意思 请问订机票的 白菜网 可靠吗 济南白菜网络技术有限公司怎么样? 白菜能解毒吗 很多人说白菜解毒我不止到为什么 大白菜的功效与作用分别是? 淘宝白菜群是什么?可信吗? 笔记本电脑自己升级需要注意什么? 笔记本电脑升级? 老笔记本电脑如何升级? 八大名酒是哪些呢? 中国八大名酒排名有哪些