为了账号安全,请及时绑定邮箱和手机立即绑定

一个返回值为long long类型的函数返回的值不是longlong类型,为什么

一个返回值为long long类型的函数返回的值不是longlong类型,为什么

C C++
慕粉18341035298 2016-11-02 20:38:59
#include<iostream>using namespace std;long long  int find(int n){ int nn = 1; for (int i = 0; i < n; i++) {  nn *= 2; } return nn;}int main(){ cout << find(50); return 0;}结果是错的,为什么。(测试一下它是按照int类型输出的)
查看完整描述

1 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

虽然 find 函数的返回类型是 long long int,但是函数中的 nn 却是 int 类型!
函数中 nn 参与的所有运算也都是 int 的,所以最后 nn 中的数据太大溢出了。nn 中的数据已经不正确了,函数返回时的返回值由 nn 初始化,那么返回值自然也是不正确的,即便返回值类型是 long long int...


将 find 函数中的 nn 同样改为 long long int 就好了

查看完整回答
反对 回复 2016-11-03
  • 1 回答
  • 0 关注
  • 3213 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信