| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4280 人关注过本帖
标题:求助:函数的返回值是指针
只看楼主 加入收藏
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
还有,你的代码,有点问题哦,
if(...)double *pt=...;
这里,p是在if“块”内定义的,虽然没有打大括号,但是仍然算是另一个块。也就是说,在if外面,p变量已经超过其作用域了……换句话说,p已经不存在了………………

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-04-29 22:54
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
恩...我只是为了证明能给出函数原形..并不打算给出函数体的实现..自己写的东西才有收获...我把所有指针都用*p表示,如果作用域不结束,编译也通不过

[[it] 本帖最后由 sunkaidong 于 2008-4-29 23:04 编辑 [/it]]

学习需要安静。。海盗要重新来过。。
2008-04-29 22:57
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
嘿嘿,偷偷笑个,估计飞燕又要不屑了……嘿嘿……
说实在的我也挺不屑的,这东西研究了没用处……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-04-29 23:03
beyond0702
Rank: 1
来 自: 桂 林
等 级:新手上路
帖 子:219
专家分:0
注 册:2007-11-17
收藏
得分:0 
#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
2008-04-29 23:05
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
恩,,属于语法.不是算法...其实我快扎语法堆里面转不出来了..好像说语法也没多少..其实要是把c c++ java c#的语法都弄懂弄透头也大....还有些高级主题和高级编程..晕..不过也要快结束了..以后挂燕子的测试上提高算法

学习需要安静。。海盗要重新来过。。
2008-04-29 23:07
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
#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;
}

学习需要安静。。海盗要重新来过。。
2008-04-29 23:08
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
上面的,括号是不必要的……
float f=*(float*)add(&a,&b,'f');

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-04-29 23:21
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
收藏
得分:0 
[bo]以下是引用 [un]StarWing83[/un] 在 2008-4-29 23:03 的发言:[/bo]

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

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

" border="0" />[color=white]
2008-04-29 23:25
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
我习惯了...呵呵,至少习惯不坏...让程序不至于出现莫名bug...

学习需要安静。。海盗要重新来过。。
2008-04-29 23:25
beyond0702
Rank: 1
来 自: 桂 林
等 级:新手上路
帖 子:219
专家分:0
注 册:2007-11-17
收藏
得分:0 
去掉 括号 也没什么区别啊,一个样
2008-04-29 23:25
快速回复:求助:函数的返回值是指针
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019102 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved