首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

return基础有关问题

2012-03-20 
return基础问题#includeiostreamusing namespace stdint abs(int a)int main(){int bcinbcoutab

return基础问题
#include<iostream>
using namespace std;
int abs(int a);
int main()
{
  int b;
  cin>>b;
  cout<<abs(b)<<endl;
  system("pause");
  return 0;
}
int abs(int a)
{
  return (a>=0)?a:(-a);//这句没有写return也能成功编译
}

为啥abs中的return不写也对程序没影响,查了半天,自己猜测可能的原因有:1 程序自动补写return 0 ;2 标准库优先级更高从而弥补了自己写的不完整。3 默认返回int型(但大多都说是只有main中且C中才适用)4 某些时候不需要写(有人大概这样提过,但没发现例子及适用范围,不晓得是否单指的是void的时候) 5 编译器对错误编码的容错,或许换个编译器便算错误了。 6 返回随机数,自己没发现问题只是结果碰巧正确。但自己测了几十次,结果都正确,只发现一次错误(都怀疑是看错了,且重复验证又没问题了)。
求指点。

[解决办法]
(a>=0)?a:(-a);//窃以为应该是个表达式,不管有没有return都会有个值返回。
////当函数int abs(int a)是返回int型时,(a>=0)?a:(-a)恰巧也是返回一个int型值。
楼主可以把函数int abs(int a)改为函数void abs(int a)形式,然后也不写return,看看结果如何。

[解决办法]
表达式自动return了 你可以把调用abs函数赋值打出来看看是什么
[解决办法]
1 自定义函数避免与库函数重名
2 你用什么编译器,不return的话,应该要报错的
[解决办法]
谁家的编译器,这么古老。
[解决办法]
建议还是不要用那些不标准的编译器,避免出现一些莫名的问题。还是就是写程序时的规范化。
[解决办法]
哈哈 编译器不同结果不同啊!!
[解决办法]
别纠结了,记住该怎么写就行了
[解决办法]
因为c编译器很变态,机器运行时有时很马虎,只要有它要的地址,它就去取,如果可访问,那么
上层就觉得没问题了

热点排行