我们C题库里一道类型转换题.
本帖最后由 维克多羽果 于 2018-1-1 21:37 编辑属于合法的C语言长整型常量的是( ).
A.6273
B.0L
C.2E10
D.(long)5876273
-----------------------------------------------------
答案是B,但是不知道D哪里错了
我用以下代码做了下测试
------------------------------------------------------
int main()
{
printf("%d", sizeof( (double)12345 ) );
return 0;
}
-------------------------------------------------------
由于long的存储空间和int的存储空间一样
所以测试时将long改成了double
输出结果是:8
说明应该可以这样做类型转换的
所以想问问为什么D不对 2.常量:不能被修改。
常量在C语言中是数值字面量。字面量后缀为L或l,表示long,例如1234L、0l。如果不带后缀,默认为int字面量而不是long字面量,即不是长整型常量。 ba21 发表于 2018-1-1 22:06
2.常量:不能被修改。
常量在C语言中是数值字面量。字面量后缀为L或l,表示long,例如1234L、0l。如果不带 ...
int字面量和long字面量有什么区别
还有,那D不是长整型常量吗 维克多羽果 发表于 2018-1-1 22:36
int字面量和long字面量有什么区别
还有,那D不是长整型常量吗
常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量 本帖最后由 维克多羽果 于 2018-1-1 23:32 编辑
ba21 发表于 2018-1-1 22:47
常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常量常 ...
你光是强调 常量 ,我也不理解你想表达什么啊= =
那我说说我的理解,你帮我看看对不对..
常量的类型不能被修改,常量的类型可以由后缀决定,例如0l就是长整型常量,所以D选项依然是基本整型常量 D不是常量,D是表达式 人造人 发表于 2018-1-2 00:24
D不是常量,D是表达式
喔~你说的好像有道理
能具体解释一下D为什么是表达式而不是常量吗
因为我也要给同学解释这题,所以会比较啰嗦
见谅… 人造人 发表于 2018-1-2 00:24
D不是常量,D是表达式
查了下资料,好像有点懂了,你帮我看一下我的理解对不对
常量有3种:数、字符、字符串,而D的书写方式不符合任何一种,所以不是常量
而D因为使用了强制类型转换运算符,所以本质上是个表达式,其值是long型5876273 维克多羽果 发表于 2018-1-1 23:23
你光是强调 常量 ,我也不理解你想表达什么啊= =
那我说说我的理解,你帮我看看对不对..
也真是服了你。也服了刚刚做答的。
长整型常量
1,是长整型
2,是常量
3,常量说明不能被修改
4,长整型常量用后缀为L或l表示。如1234L、0l
注:如果不带后缀,默认为int字面量而不是long字面量,即不是长整型常量。
维克多羽果 发表于 2018-1-2 07:34
查了下资料,好像有点懂了,你帮我看一下我的理解对不对
常量有3种:数、字符、字符串,而D的书写方式不 ...
什么是表达式?
http://blog.csdn.net/astrotycoon/article/details/50857326
人造人 发表于 2018-1-2 13:16
什么是表达式?
http://blog.csdn.net/astrotycoon/article/details/50857326
这个我也查到了
嗯,觉得你说的比较有道理
谢了~ 人造人 发表于 2018-1-2 00:24
D不是常量,D是表达式
人造人大大,现在不绑定手机发不了帖,我输入绑定手机号点发送验证码提示操作频繁怎么办,隔了很多天再试的{:5_90:} kai759630 发表于 2018-1-3 15:49
人造人大大,现在不绑定手机发不了帖,我输入绑定手机号点发送验证码提示操作频繁怎么办,隔了很多天再试 ...
这个问题应该找小甲鱼老师
帮你召唤@小甲鱼 kai759630 发表于 2018-1-3 15:49
人造人大大,现在不绑定手机发不了帖,我输入绑定手机号点发送验证码提示操作频繁怎么办,隔了很多天再试 ...
已经处理好啦~~
页:
[1]