我在某处读到像1.2
这样的默认浮点值double
而不是float
。
那么像6
这样的默认整数值是short
,int
还是long
?
答案 0 :(得分:7)
基数10中给出的整数文字的类型是以下列表中可以适合其值的第一种类型:
int
long int
long long int
对于八进制和十六进制文字,也将按以下顺序考虑无符号类型:
int
unsigned int
long int
unsigned long int
long long int
unsigned long long int
您可以指定u
后缀以强制unsigned
类型,l
后缀强制long
或long long
,或ll
后缀强制long long
。
参考:C99,6.4.4.1p5
答案 1 :(得分:4)
如果有人有兴趣:
C11§6.4.4.1/ 5:
整数常量的类型是其值可以在其中的第一个相应列表 代表。
--------------------------------------------------------------------------- Suffix Decimal Constant Octal/Hexadecimal Constant --------------------------------------------------------------------------- none int int long int unsigned int long long int unsigned long int long long int unsigned long long int --------------------------------------------------------------------------- u or U unsigned int unsigned int unsigned long int unsigned long int unsigned long long int unsigned long long int --------------------------------------------------------------------------- l or L long int long int long long int unsigned long int long long int unsigned long long int --------------------------------------------------------------------------- Both u or U unsigned long int unsigned long int and l or L unsigned long long int unsigned long long int --------------------------------------------------------------------------- ll or LL long long int long long int unsigend long long int --------------------------------------------------------------------------- Both u or U unsigned long long int unsigned long long int and ll or LL ---------------------------------------------------------------------------
关于前缀§6.4.4.1/ 3:
十进制常量以非零数字开头,由一系列十进制数字组成。八进制常量由前缀0组成,可选地后跟一个数字0到7的序列。十六进制常量由前缀0x或0X后跟一个十进制数字序列和字母a(或A)到f(或F)组成,值分别为10到15。
答案 2 :(得分:2)
有三种类型的整数文字(标准术语中的或整数常量):十进制,八进制或十六进制,规则略有不同,具体示例6
将为{ {1}}但通常对于没有后缀( u,U,l,L,ll,LL )的十进制常量,它将基于哪种类型可以表示{中涵盖的值{3}}部分int
整数常量段落 5 ,其中包含:
整数文字的类型是相应列表中可以表示其值的第一个。
因此对于没有后缀的十进制文字,类型将是第一个:
和 octal 和 hex 这些类型将是第一个: