码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-11-22 11:14:11      阅读:162      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!