下表列出了C语言变量类型以及这些类型可以存储的值范围。
类型 | 值范围 | printf()转换符 |
---|---|---|
_Bool |
0 至 1 | %d |
char |
-128 至 127 | %c |
unsigned char |
0 至 255 | %u |
short int |
-32,768 至 32,767 | %d |
unsigned short int |
0 至 65,535 | %u |
int |
-2,147,483,648 至 2,147,483,647 | %d |
unsigned int |
0 至 4,294,967,295 | %u |
long int |
-2,147,483,648 至 2,147,483,647 | %ld |
unsigned long int |
0 至 4,294,967,295 | %lu |
float |
1.17?10^-38 至 3.40?10^38 | %f |
double |
2.22?10-308 至 1.79?10308 | %f |
要存储值-10
,可以使用short int
,int
或long int
类型的变量。不能使用unsigned int
,如以下代码所示。
示例代码
#include <stdio.h>
int main()
{
unsigned int ono;
ono = -10;
printf("The value of ono is %u.\n",ono);
return(0);
}
执行上面示例代码,得到以下结果:
hema@ubuntu:~/book$ gcc -o main main.c
hema@ubuntu:~/book$ ./main
The value of ono is 4294967286.
hema@ubuntu:~/book$
注意:上面输出结果中得到一个随机数。并不是所期望的值:
-10
,这是因为使用了转换符:%u
,正确的转换符应该是:%d
。