21xrx.com
2024-06-02 18:36:53 Sunday
登录
文章检索 我的文章 写文章
C语言中的037是否合法常量
2023-06-12 17:16:50 深夜i     --     --
C语言 常量 八进制数

在C语言中,常量是不可变的数据,在程序运行中不能被修改。常量可以是数值、字符、字符串、枚举等,常量在程序中有广泛的应用。而这里的“037”是一个八进制数,那么,在C语言中,它是否合法呢?

首先,我们需要了解一下C语言中的进制表示方法。C语言中,十进制整数使用普通的数字表示法,如123。八进制整数以数字0(零)开头,如037。十六进制整数以数字0x(或0X)开头,后面是0-9和A-F(不区分大小写),如0xaBc。二进制整数在C语言中没有自带的标识方法,可以使用二进制位运算符(如<<和|)来定义。

回到本文的问题,037是一个以0开头的八进制数,在C语言中是合法的常量。通过编译器,我们可以看到:


#include

int main(void) {

  int a = 037;

  printf("%o %d\n", a, a);

  return 0;

}

输出结果:


37 31

这说明了037被成功地解析成了十进制整数31,并把31赋值给了变量a。那么,为什么037会被解析成十进制整数31呢?这是因为C语言会根据数值的表示方式来确定其进制,以0开头的数字会被当作八进制数处理。

综上所述,037是一个合法的常量,在C语言中,它代表着十进制整数31。如果你需要在C语言中使用八进制数,可以使用以0开头的数字表示法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复