当前位置: 代码迷 >> C语言 >> 求助:函数的返回值是指针
  详细解决方案

求助:函数的返回值是指针

热度:299   发布时间:2008-04-29 22:54:30.0
还有,你的代码,有点问题哦,
if(...)double *pt=...;
这里,p是在if“块”内定义的,虽然没有打大括号,但是仍然算是另一个块。也就是说,在if外面,p变量已经超过其作用域了……换句话说,p已经不存在了………………
----------------解决方案--------------------------------------------------------
恩...我只是为了证明能给出函数原形..并不打算给出函数体的实现..自己写的东西才有收获...我把所有指针都用*p表示,如果作用域不结束,编译也通不过

[[it] 本帖最后由 sunkaidong 于 2008-4-29 23:04 编辑 [/it]]
----------------解决方案--------------------------------------------------------
嘿嘿,偷偷笑个,估计飞燕又要不屑了……嘿嘿……
说实在的我也挺不屑的,这东西研究了没用处……
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void* add(void* lv,void* rv,char op)
{
    switch (op)
    {
    case 'i':*(int*)lv+=*(int*)rv;break;
    case 'l':*(long*)lv+=*(long*)rv;break;
    case 'f':*(float*)lv+=*(float*)rv;break;
    case 'd':*(double*)lv+=*(double*)rv;break;
    }
    return lv;
}
int main()
{   
    float a=1,c=2;
    float b=*((float*)*add(&a,&c,'f'));  //这里应该怎么改,,???
    printf("%f\n",b);
    return 0;
}
cpp(16) : error C2100: illegal indirection
----------------解决方案--------------------------------------------------------
恩,,属于语法.不是算法...其实我快扎语法堆里面转不出来了..好像说语法也没多少..其实要是把c c++ java c#的语法都弄懂弄透头也大....还有些高级主题和高级编程..晕..不过也要快结束了..以后挂燕子的测试上提高算法
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void* add(void* lv,void* rv,char op)
{
    switch (op)
    {
    case 'i':*(int*)lv+=*(int*)rv;break;
    case 'l':*(long*)lv+=*(long*)rv;break;
    case 'f':*(float*)lv+=*(float*)rv;break;
    case 'd':*(double*)lv+=*(double*)rv;break;
    }
    return lv;
}
int main()
{   
    float a=1,c=2;
    float b=*((float*)add(&a,&c,'f'));  
    printf("%f\n",b);
    return 0;
}
----------------解决方案--------------------------------------------------------
上面的,括号是不必要的……
float f=*(float*)add(&a,&b,'f');
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]StarWing83[/un] 在 2008-4-29 23:03 的发言:[/bo]

嘿嘿,偷偷笑个,估计飞燕又要不屑了……嘿嘿……
说实在的我也挺不屑的,这东西研究了没用处……

嘿嘿,sw在用偶的软件来高亮了

[color=white]
----------------解决方案--------------------------------------------------------
我习惯了...呵呵,至少习惯不坏...让程序不至于出现莫名bug...
----------------解决方案--------------------------------------------------------
去掉 括号 也没什么区别啊,一个样
----------------解决方案--------------------------------------------------------
  相关解决方案