易百教程

数字类型及其值范围

下表列出了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 intintlong 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