神奇的C语言六:char可以是负数吗
2014-05-28 09:06
357 查看
C语言标准中没有规定char是signed char还是unsigned char,所以这就取决于编译器的实现了。
大部分编译器默认情况下将char解释为signed char,例如gcc和vc的编译器,这很大程度上是因为int默认是signed。
工作中解决此问题的方法:
1、使用编译器选项明确指定char的符号类型;
2、在程序中进行判断,两种方法,主要代码如下:
认为char就是signed char大部分情况下是没有问题的,不过以防万一还是没有错的。
大部分编译器默认情况下将char解释为signed char,例如gcc和vc的编译器,这很大程度上是因为int默认是signed。
工作中解决此问题的方法:
1、使用编译器选项明确指定char的符号类型;
2、在程序中进行判断,两种方法,主要代码如下:
int main(){ char a = -1; if (CHAR_MIN == SCHAR_MIN){ printf("signed char\n"); }else{ printf("unsigned char\n"); } if (a == -1){ printf("signed char\n"); }else{ printf("unsigned char\n"); } return 0; }
认为char就是signed char大部分情况下是没有问题的,不过以防万一还是没有错的。
相关文章推荐
- C语言中数组下标可以为负数
- [笔记]一道C语言面试题:判断字串是否可以通过重新排列字母使之对称
- C语言中,为什么字符串可以赋值给字符指针变量
- C语言字符型数据的ASCII码值为何是负数?
- C语言练习,可以解析协议,主机,路径,询问,片段等
- 用c语言实现一个通讯录; 通讯录可以存储1000个人的信息,信息包括姓名、性别、年龄、电话、住址 提供方法: 1.添加联系人信息 2.删除指定联系人信息 3.查找指定联系人信息 4.修改指定联系&
- IOS开发---C语言-⑧字符char
- C语言实现扫雷。可以标记。
- char类型和int型可以通用
- C语言中基本类型char、short、int、long等类型的取值范围
- C语言初学者可以做到的加密和解密
- error C2057: expected constant expression (C语言中数组的大小可以在程序运行时定义吗? )
- 在C语言中,double、long、unsigned、int、char类型数据所占字节数
- 【c语言】编写一个函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数
- C语言 编写一个函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数。
- C语言 实现char * my_strcat(char * dest,char *src)函数
- 在C语言中,double、long、unsigned、int、char类型数据所占字节数
- c语言:printf可以自动把两个字符串合并成一个字符串,并且可以合并多个
- 【c语言】 编写一个函数reverse_string(char * string)(递归实现)
- c语言中char数组和int的转换