C语言高级编程:char、signed char 和 unsigned char的使用区别

1. 区别与联系:

1)在定义字符类型时一般使用char来定义

2)char被当成有符号或是无符号视不同编译器决定,由于ASCII码范围从0-0x7F(127),所以char无论被当成有符号还是无符号类型均可

3)在定义数值类型时使用 signed char 和 unsigned char,signed char表示-128—127,unsigned char表示0—255

4)三者在内存里都表示8位一个字节大小,所以当只是被用来存储二进制数据时不关心是有符号还是无符号

测试平台:64位 X86 Ubuntu

2. 代码:

#include <stdio.h>

void main(void)
{
    char a = 0xff;
    signed char sa = 0xff;
    unsigned char ua = 0xff;

    printf("a = %d, a = %c\n", a, a);
    printf("sa = %d, ua = %d\n", sa, ua);

}

3. 结果:

baoli@ubuntu:~/c$ ./a.out
a = -1, a = �
sa = -1, ua = 255

4. 分析:

1)在Ubuntu gcc下char被定义为 signed char

发布了170 篇原创文章 · 获赞 116 · 访问量 33万+

猜你喜欢

转载自blog.csdn.net/u012247418/article/details/102370789
今日推荐