c++的函数返回值类型不确定的情况下,返回值应该定义成什么?

求大神帮忙解惑... 求大神帮忙解惑 展开
 我来答
山水阿锐
推荐于2018-04-12 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.1亿
展开全部
您好,说的这问题总结一下有几点可以说:
首先就拿你说的strcat来说吧,它的返回值类型你可能没用过,不过类型是char*你可能也能够猜到它是连接后的字符串了。而且它确实如此。strcat(s,t);通过这个调用以后,t串将连到s串后边,那么s串就是我们连接好的串,同时它的返回值也是连接好的串,也就是返回值也是s,这就使得一个问题得以方便,比如我要连接这个串后并输出,那么你可能写的代码是这样:
strcat(s,t);
printf("%s\n",s);
但此处我也可以这么写:printf("%s",strcat(s,t));
我高兴的话还可以这么写:printf(strcat(s,t));
以上三个结果都是一样的。那你看,很显然后两种更简洁一些。
这也就总结出第一条,在处理程序中使得某些问题简化。通常这种在参数为指针时常见
再来看一个scanf 它的返回值,它的返回值你也应该从来没有用过吧?它的意义是返回正确读入变量的个数,比如scanf("%d",&i);如果正确读入一个整数的话它就返回1,否则返回0
那么通过这个1和0我们就可以判断它是否正确读入的变量,并且读了几个。在ACM中我们常见的写法是while(scanf("%d",&n)!=EOF) 来实现数据的循环读入
那么这第二条便是通过返回值来判断成败。
再比如说fopen这个是打开文件的函数,它的返回值我们常用,这里只是提一点,它其实会返回打开的文件指针,但有一种情况就是文件没有打开,或是打开失败,这时初学者常忽略一个问题就是如果失败了咋办,如果不特别处理你还使用着那个失败的文件指针必然得不到想要的结果,甚至出现问题。所以别忘了某些函数在失败的时候的返回值,这和你问题似乎有些连系。

总结大至是以上三点吧,一个函数返回值并不是没有用的,库函数即然设置了一般都会有它的用意。
TableDI
2024-07-18 广告
当使用VLOOKUP函数进行匹配时,如果结果返回“#N/A”错误,这通常意味着在查找表中未找到与查找值相匹配的项。可能的原因有:查找值拼写错误、查找表的范围不正确、查找值不在查找列的列、查找表未进行绝对引用导致范围变动等。为了解决这个问题,... 点击进入详情页
本回答由TableDI提供
韵城之都的管家
2018-04-12 · TA获得超过304个赞
知道小有建树答主
回答量:382
采纳率:0%
帮助的人:148万
展开全部

你可以多定义几个同名函数,每个函数返回值类型都不一样。

int add(int a,int b){
    ...
}
float add(float a,float b){
    ...
}
double add(double a,double b){
    ...
}

这样是可以的

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
六三enjoy
2019-08-23 · TA获得超过397个赞
知道答主
回答量:261
采纳率:0%
帮助的人:25.7万
展开全部
我自己摸索了一下:
可以声明一个类,类里面声明几个变量分别是可能用到的类型,返回值就是那个类。
用那个类声明变量。
是什么类型把那个存储到类里面对应的参数里。
返回那个变量,调用里面的参数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小鑫聊两性
2015-04-01 · 与大家聊聊年轻男女之间的那些事儿
小鑫聊两性
采纳数:184 获赞数:921

向TA提问 私信TA
展开全部
返回值类型都不确定的话

建议用模板
追问
有没有万能类型呢
追答
可以返回void*
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式