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!!!
本文通过一个简单的C语言程序示例介绍了char类型的数值范围及其溢出行为。当char变量加上255后,由于数值范围限制,溢出后的结果为1,展示了char类型在C语言中只有8bits,取值范围为0~255的基本概念。
738

被折叠的 条评论
为什么被折叠?



