long long与__int 64区别?

longlong与__int64区别?在线等~为什么#include<stdio.h>intmain(){__int64a[91];inti,n;a[1]=1;a[2]=... long long与__int 64区别?
在线等~
为什么
#include <stdio.h>
int main(){
__int64 a[91];
int i, n;
a[1] = 1; a[2] = 2;
for (i=3; i<=90; i++){
a[i] = a[i-2]+a[i-1];
}
while (scanf("%d", &n)==1 && n!=0){
printf("%I64d\n", a[n]);
}
return 0;
}

我提交是对的,而下面的就Output Limit Exceed 呢?
#include<stdio.h>
int main()
{
long long int f1,f2,f3,n,i,a[91];

a[1]=1;
a[2]=2;

for(i=3;i<91;i++)

{ a[i]=a[i-1]+a[i-2];

}

while(scanf("%lld",&n)!=EOF,n!=0)
{
printf("%lld\n",a[n]);
}
return 0;
}
展开
 我来答
ecrasyy
2012-11-13 · TA获得超过309个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:177万
展开全部
这是和平台相关的。
__int 64由微软来确保是64位,8个字节,不可移植。
long long与平台相关,可能是8字节也可能不是。
追问
亲,看一下问题补充吧,回答好的话,追加20分,立刻采纳,谢谢啦~~
追答
while(scanf("%lld",&n)!=EOF,n!=0)
{
printf("%lld\n",a[n]);
}
这里为什么用逗号表达式?
你的逗号表达式导致n溢出了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
斯玛特_stl
2012-11-13
知道答主
回答量:3
采纳率:0%
帮助的人:2.9万
展开全部
个人感觉没啥区别,《c++primer》上说过long long是64位。
有时候编译器却会影响,
HDU上遇到过int64WA,long long A了的情况。
追问
恩恩,那看一下问题补充吧!两者好像一样的,为什么一个accepted而另一个就Output Limit Exceed 呢?
追答
把网址给我吧,我去试试long long能不能a。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loboho
2012-11-13 · TA获得超过506个赞
知道小有建树答主
回答量:441
采纳率:100%
帮助的人:410万
展开全部
没区别,__int 64是VC扩展的东西,不属于标准范畴。
更多追问追答
追问
亲,看一下问题补充吧,回答好的话,追加20分,立刻采纳,谢谢啦~~
追答
试了,vc8上两段代码结果相同。不知Output Limit Exceed是何意
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
beddy1
2012-11-13 · TA获得超过1989个赞
知道大有可为答主
回答量:2271
采纳率:0%
帮助的人:2205万
展开全部
你的n是long long类型的,会有潜在的问题。
a[n] 这样的下标索引,是只支持int的。
追问
好吧,您所说的潜在问题是什么呢?

我定义的是long long int也属于int类型,您所说的a[n] 这样的下标索引,是只支持int的条件,不是已经符合这个条件了吗?
追答
long long int 其实就是long long,和int在Windows平台下并不是一回事。典型的,int是32位,而long long 是64位的。
而a[n]这样的下标,n只支持机器最高效的类型。也就是说在32位环境下是int,而64位环境下才是long long。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式