23. 在下列表达式中属于合法的C语言长整型常量的是()。
A) 5836253
B) 0L
C) 2E+10
D) (long)5834653
B
直接写整数数字的时候,默认是int类型,所以A、C、D中的数字都默认是int类型,不是long int
C是科学计数法的写法,默认是int类型。
D中5834653是int类型,虽然前面有(long)这个强制转换,但是这个long是对一个隐式变量修饰用的,而不是对5834653这个数字来说的(相当于long a = (long)5834653,a是long类型,但是5834653不是long类型,而且,a是变量,不是常量),所以D中也不是长整形常量的表达方式。
在数字后加L表示long int类型,所以B是正确的。