勇敢追求自己,加油加油
分类: C/C++
2010-12-28 10:42:21
char类型,即字符类型(也称字符型),char类型的值,可以根据计算机的不同而不同,因为不同的机器可能会有不同的字符集。
char ch;
int i;
i=a; /* i is now 97 */
ch=65; /* ch is now A */
ch=ch+1; /* ch is now B */
ch++; /* ch now is C */
既然c语言允许把字符作为整数来使用,那么char类型应该像整数一样也存在有符号型和无符号型两种。通常有符号的取值范围是-128~127.无符号的取值范围是0~255.
C语言的标准并没说明普通char类型数据时有符号型和无符号型。各个编译器对待char类型都不一样。
例如如下的程序:
/************************************************************/
#include
int main()
{
int sum=300;
char ch=127;
printf("sum=%d,(char)ch=%c,(int)ch=%d\n",sum,ch,ch);
ch+=1;
sum+=ch;
printf("sum=%d,(char)ch=%c,(int)ch=%d\n",sum,ch,ch);
return 0;
}
/************************************************************/
这里面主要考察ch+=1之后,变量ch的值为多多少呢?
这就要看编译器了,由于编译器默认的char数据类型的类型有所不同,结果也不同。
如果编译器定义的是有符号类型那么ch的结果就是-128,因为有符号类型的char的范围是-128~127.
如果编译器定义的是无符号类型那么ch的结果就是128,因为无符号类型的char的范围是0~255.