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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hello_courage

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值