永发信息网

请教一个程序问题

答案:3  悬赏:50  手机版
解决时间 2021-02-09 18:36
程序如下:
#include
#include
void fun(float*p1,float*p2,float*s)
{s=(float*)calloc(1,sizeof(float))
*s=*p1+*p2++;
}
main()
{floata[2]={1.1,2.2},b[2]={10.0,20.0},s=a;
fun(a,b,s);printf("%5.2f\n",*s);
}
*************************结果是1.10,为什么不是21.10求高手解答
真不好意思,上面的程序有些语句打错了,下面的是正确的***********************************************************************************************
#include
#include
void fun(float*p1,float*p2,float*s)
{s=(float*)calloc(1,sizeof(float))
*s=*p1+*p2++;
}
main()
{float a[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;
fun(a,b,s);printf("%5.2f\n",*s);
}
最佳答案
c语言所有都是传值,包括指针

1. s=a = a[0]=1.1
2. 把s传递过去,也就是a的地址值,但这时fun中的s和main中的s是两个不同的*局部*变量,虽然她们目前指向的地址都是a。
3。给fun中的s另外分配空间,将它指向了另一个地址(这时就不指向a了,main的s依然指向a)
4. fun中的*s仅仅是内部用了一下。

calloc后两个s就已经毫无关联了(指向不同地址)。

如果有任何遗漏欢迎补充。
全部回答
#include #include void fun(float *p1,float *p2,float *s) { s=(float*)calloc(1,sizeof(float)); *s=*p1+*p2++; } main() { float a[2]={1.1,2.2}, b[2]={10.0,20.0}, *s=a; fun(a,b,s); printf("%5.2f\n",*s); } —————————— 代码应该是如此的,楼主的头文件还有错。 楼上应该是正解。而函数体中的*s是11.10。开始*p2为10.0而*p2++应该是先算指针再算自增,所以*s为11.10,而最后*p2为20.0

<table><tr><td>第一个</td><td >&nbsp;</td><td>第二个</td></tr></tabler>

 

可以给需要的td加上宽度,还有就是左对齐、右对齐、居中这些属性来调整

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
丰盈宾馆(二店)地址在什么地方,想过去办事
学岭酒店地址在什么地方,想过去办事
orientated是什么意思
7天连锁酒店(胶州汽车总站店)地址在什么地方
我请问专家们:小孩是回老家读大学好呢,还是
【电量换算】为什么要把非电量转换成电量?
青岛胶州阳光大厦地址在哪,我要去那里办事
【多谢浣纱人未折】多谢浣纱人未折,雨中留得
西游记,定海神针,真的是大禹的?
北海小商贩在街边卖水果一天大约能挣多少钱?
锦江之星(胶州市胶州东路店)地址好找么,我
怎么在我的网站的用户界面添加一个邀请链接
实习测量员工资大概多少?
请问ps2游戏的dvd版本和cd版本有很大区别吗?
真三国无双3马超武器
推荐资讯
小米4手机2个g和3个g有什么区别
S.H.E发型私人定制(一店)地址有知道的么?有
什么什么什么牛成语有哪些
随县谊家宾馆地址在什么地方,我要处理点事
圣美服饰国贸店我想知道这个在什么地方
明师傅烧腊卤水快餐这个地址在什么地方,我要
含有帅字的词语有什么
思南县小荧星双语艺术幼儿园地址有知道的么?
柳桥停车区停车场地址在哪,我要去那里办事
长虹这个企业怎么样?
氯仿(CHCl3)是一种良好的有机溶剂,它不溶
It is a four-hour flight from Phoenix to S
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?