zoukankan      html  css  js  c++  java
  • char值不能直接用作数组下标

    #include <stdio.h>
    
    //用 char 的值作为数组下标(例如,统计字符串中每个字符出现的次数),要考虑到
    //char 可能是负数。有的人考虑到了,先强制转型为 unsigned int 再用作下标,这仍然
    //是错的,因为char会先字节扩展变为int,再从int变为unsigned int。
    //正确的做法是,先强制转型为 unsigned char,再用作下标,这时会再隐式转换为int。
     
    int main()
    {
        char a = 128;
    
        printf("%u
    ", (unsigned)a);
        printf("%x
    ", (unsigned)a);
    
        printf("%u
    ", (unsigned char)a);
        printf("%x
    ", (unsigned char)a);
    
        return 0;
    }
    
    //4294967168
    //ffffff80
    //128
    //80
    //请按任意键继续. . .
  • 相关阅读:
    python中神之bug
    常用好的软件
    远程登录
    centos7改静态ip
    SpringMVC归纳
    mysql数据库操作手册
    MyBatis归纳
    Maven归纳
    maven操作手册
    java知识库
  • 原文地址:https://www.cnblogs.com/lakeone/p/4985368.html
Copyright © 2011-2022 走看看