s=1L在c语言中什么意思 啊?

如题所述

s=1L在C中是将1强制为long型赋给long型变量s的意思。显然s是被定义为long型的,由于C对意即整数默认的是int型,所以将int型1赋给一个long型变量s时要把1强制为long型,以使=号左右数据类型匹配。不过这里可以不写L,因为int型比long型“短”,编译器会自动使短的向长的看齐——这叫隐式类型转换。不过写上L是个好习惯,对于代码阅读具有一定的提示作用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-20
把长整型1赋给变量s。其中的L表示数据1类型是长整型long int。追问

不是这个意思吧,下面第九排就是这个,你看看
#include"stdio.h"
#include"string.h"
unsigned long jc(unsigned short a)
{
unsigned long s=1;
if(a>1)
s=a*jc(a-1);
else
s=1L;
return s;
}
main()
{
unsigned s,n;
puts("请输入您查询的阶乘值");
scanf("%d",&n);
s=jc(n);
printf("%d\n",s);
}

追答

是啊,怎么不是了?

追问

如果返回值是1,岂不最后输出结果是1啦?

追答

是啊,那不是上面有个else吗?如果a不大于1就是a=1或0,这时候结果不就是1吗

本回答被提问者和网友采纳
第2个回答  2015-09-22
L 表示long类型, 把1这个长整型赋值给变量s
第3个回答  2011-08-21
类型后最,强制其为long类型。整型常量在C中默认为int
第4个回答  2015-09-11
就是把长整型数1赋值给变量s。
相似回答