首页 > 编程语言 > 详细

char值不能直接用作数组下标

时间:2015-11-22 11:11:22      阅读:392      评论:0      收藏:0      [点我收藏+]
#include <stdio.h>

//用 char 的值作为数组下标(例如,统计字符串中每个字符出现的次数),要考虑到
//char 可能是负数。有的人考虑到了,先强制转型为 unsigned int 再用作下标,这仍然
//是错的,因为char会先字节扩展变为int,再从int变为unsigned int。
//正确的做法是,先强制转型为 unsigned char,再用作下标,这时会再隐式转换为int。
 
int main()
{
    char a = 128;

    printf("%u\n", (unsigned)a);
    printf("%x\n", (unsigned)a);

    printf("%u\n", (unsigned char)a);
    printf("%x\n", (unsigned char)a);

    return 0;
}

//4294967168
//ffffff80
//128
//80
//请按任意键继续. . .

 

char值不能直接用作数组下标

原文:http://www.cnblogs.com/lakeone/p/4985368.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!