错误。
1永远是int型的。
'1'永远是int型的。(是不是感到奇怪?但是C里面就是这样的。在C++里面,'1'是char型)
1.0 0.1 ... 永远是double型的
1.0f 0.1f 永远是float型的,而1f不合法,会产生编译错误。
1u 永远是unsigned int型的
1uL 永远是unsigned long int型的,其中所有字符都是可大写可小写,但是为了防止和1混淆,建议L大写。
1.0L 永远是long double型的。其中L含义同上。
为什么没有所谓的1h,1hu作为short型的简写呢?因为不需要。C是可以对short隐式类型转换的,而显式的转换也是允许的。后缀只是为了保证在输入字面常量的时候不丢失精度。
列表如下:
+--------------------------+-----------------------+-------------------+
| 类型
| 后缀
| 输出格式控制符
|
+--------------------------+-----------------------+-------------------+
| char
| -
|
%c
|
| int
| -
|
%d
|
| unisgned int
| u/U
|
%u
|
| short int
| -
|
%hd
|
| unsigned short int
| u/U
|
%hu
|
| long int
| l/L
|
%ld
|
| unsigned long int
| lu/LU/ul/UL/lU...
|
%lu
|
| long long int
| ll/LL
|
%lld
|
| unsigned long long int
| ull/ULL/LLU/llu/...
|
%llu
|
| float
| f/F
|
%f
|
| double
| -
|
%f
|
| long double
| l/L
|
%Lf
|
+--------------------------+-----------------------+-------------------+
(不得不说一句,VIM的自动绘表功能真是强大……我用的sketch插件。用Vim的可以试试看……)