首页 > 其他分享 >《C语言中char是根据编译器来确定是有符号还是无符号》

《C语言中char是根据编译器来确定是有符号还是无符号》

时间:2023-03-06 12:11:16浏览次数:39  
标签:符号 默认 C语言 char 编译器 类型

在C语言中,char类型的有无符号是依赖于具体的编译器实现的。在一些编译器中,char类型是有符号的,而在另一些编译器中,char类型是无符号的。由于C语言标准并没有规定char类型应该是有符号还是无符号,所以在编写代码时应当避免依赖于char类型的有无符号。如果需要确保char类型是有符号的,可以使用signed char类型;如果需要确保char类型是无符号的,可以使用unsigned char类型。      否则会出现定义char默认是有符号,但是编译器默认是无符号,会导致char val = -1;出现歧义,通过十进制打印,会发现会出现-1和255的结果。需要特别注意。   结论:如果char要做有符号,则应该signed char显式定义,否则都默认是无符号。

标签:符号,默认,C语言,char,编译器,类型
From: https://www.cnblogs.com/zhuangquan/p/17183288.html

相关文章

  • 第一章 C语言:数据存储
    一、大小端存储大端存储:数据的低位字节存储在高地址小端存储:数据的低位字节存储在低地址不同编译器有不同的存储方式inta=10;char*p=(char*)&a;printf(......
  • c语言中有符号和无符号数字
    https://nju-projectn.github.io/ics-pa-gitbook/ics2022/why.html#数组求和数组求和intsum(inta[],unsignedlen){inti,sum=0;for(i=0;i<=len-1;i++)......
  • Linux & 标准C语言学习 <DAY1>
    Linux系统简单介绍:  BCPL->NewB->C->UNIX->Minix->Linux->gcc  美国贝尔实验室1968  Linux管理硬盘的能力非常强,所以只有一个磁盘分区  cd路径名......
  • Linux & 标准C语言学习 <DAY3>
    C语言简介:  BCPL->NewB->C->UNIX->Minix->Linux->gcc  C语言诞生于1971~1973年,美国贝尔实验室,肯.汤普逊和丹尼斯.里奇  C语言是专门为了编写操作系统而诞......
  • Linux & 标准C语言学习 <DAY2>
    vim文本编辑器:  可以直接在终端下采用纯键盘操作的一款文本编辑器,号称编辑器之神,可以二次升级、可以扩展  基础用法:    1、进入vim:      ......
  • Linux & 标准C语言学习 <DAY5>
    一、if分支语句  if(表达式) //单分支语句  {     //表达式的值为真,则执行此处代码  }  if(表达式) //双分支语句  {   ......
  • Linux & 标准C语言学习 <DAY4>
    一、数据类型  为什么要对数据进行分类    1、现实中的数据就是自带类别属性的    2、对数据进行分类可以节约内存存储空间、提高运行速度  ......
  • Linux & 标准C语言学习 <DAY6>
    一、数组  什么是数组:变量的组合,是一种批量定义相同类型变量的方式  定义: 类型名数组名[数量];      intarr[5];      注意:数组......
  • C语言数据类型笔记
    Unsigned如果一个字面量常数想要表达自己是unsigned,可以在后面加u或U255U用l或L表示long(long)*unsigned的初衷并非扩展数能表达的范围,而是为了做纯二进制运算,主要是......
  • C语言进阶—数据的存储
    深度剖析数据在内存中的存储一、数据类型介绍1.1、基本内置类型:char//字符数据类型1字节short//短整型2字节int//整型4字节long//长整型4字节longlong//更长的整......