鱼C论坛

 找回密码
 立即注册
查看: 1109|回复: 6

[已解决]我算不对,不知道错在哪了

[复制链接]
发表于 2020-8-16 16:46:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
#include<stdlib.h>
void fun(float *p1,float *p2,float *s)
{
s=(float *)calloc(1,sizeof(float));
*s= *p1+ *p2++;
}
int 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);
}



为啥调试时1.10,我自己算是21.10
最佳答案
2020-8-16 19:29:06
你在函数中,把S赋了新地址。新创建了一块内存,把值贱给它。然后,这块新内存中存的是p1+p2的值
但是调用它的主函数中,打印的S值是你在主函数中赋的值A数组。而a[0]为1.1。所以它是1.1。
你自己算也不对。你的程序里面没有循环,只加了一次,应该是11.10。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-16 16:53:51 | 显示全部楼层
#include<stdio.h>
#include<stdlib.h>
void fun(float *p1,float *p2,float *s)
{
s=(float *)calloc(1,sizeof(float));
*s= *p1+ (*++p2);
}
int 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);
}
这样试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-16 16:55:10 | 显示全部楼层

这个不是改代码,这是选择题,我不知道按什么顺序看才能算对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-16 17:01:18 | 显示全部楼层
#include<stdio.h>
#include<stdlib.h>
void fun(float* p1, float* p2, float** s)
{
    *s = (float*)calloc(1, sizeof(float));
    **s = *p1 + *p2++;
}
int 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);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-16 17:02:12 | 显示全部楼层
在这一步
s=(float *)calloc(1,sizeof(float));

这一步给s赋予了新的内存空间后原来传入的s的地址就消失了,所以下一句加法语句
*s= *p1+ *p2++;

并没有对main函数中的地址s赋值,所以说main函数中的*s还是a[0],也就是1.10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-8-16 17:11:44 | 显示全部楼层
你的s不用指向a的地址,
        s=(float *)calloc(1,sizeof(float) );
        *s = *p1+ *++p2;
        printf("%f",*s);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-16 19:29:06 | 显示全部楼层    本楼为最佳答案   
你在函数中,把S赋了新地址。新创建了一块内存,把值贱给它。然后,这块新内存中存的是p1+p2的值
但是调用它的主函数中,打印的S值是你在主函数中赋的值A数组。而a[0]为1.1。所以它是1.1。
你自己算也不对。你的程序里面没有循环,只加了一次,应该是11.10。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 07:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表