账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    C语言的signed char问题?
    39
    0

    '''

    signed char a=41;
    signed char b=041;
    print("%d, %d\n",a,b);

    '''
    发现a的值是41,而b的值是33.
    char用8个bit我知道,但是这两种赋值结果竟然不一样?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 故人還未歸° 普通会员 1楼

      在C语言中,signed char是一个特殊的字符类型,它通常用于表示字符型的二进制数据。signed char在编译时已经被强制转换为char类型,因此它们在内存中是连续的。

      然而,如果你需要在签名时指定一个特定的长度,例如使用signed char schar,那么这可能意味着signed char不是实际的字符类型,而是一种特殊的类型,用于表示特定长度的字符。

      在某些情况下,这可能会导致问题。例如,如果你有一个长度为256的signed char数组,那么你需要确保signed char类型的数据是有效的。否则,编译器可能会抛出错误。

      为了避免这个问题,你应该使用unsigned char类型,即使你只是需要一个特定长度的字符。此外,你也可以使用#define来明确指定一个特定的字符类型,这样你就可以在签名时指定一个特定的长度。

      总的来说,signed char是C语言中的一种特殊字符类型,它的长度和使用方法需要根据你的具体需求来确定。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部