char 类型的数据只有一个 Byte, 8bits,如果是unsigned char 的话,能表示的范围就是0 ~255,看下面的这个例子:
/*
============================================================================
Name : char.c
Author : qiang
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char i = 2;
printf("i = %d \n", i);
printf("i = %d \n", i = i + 255);
puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
return EXIT_SUCCESS;
}
i = 2; i = i + 255; 这样 i 溢出了,256 的话是低8bits 全是0,所以这里的输出结果应该是:
i = 2
i = 1
!!!Hello World!!!