程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我在下面写了一个 C 代码。我想解释为什么输出是 34 而不是 0 或 42大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决我在下面写了一个 C 代码。我想解释为什么输出是 34 而不是 0 或 42?

开发过程中遇到我在下面写了一个 C 代码。我想解释为什么输出是 34 而不是 0 或 42的问题如何解决?下面主要结合日常开发的经验,给出你关于我在下面写了一个 C 代码。我想解释为什么输出是 34 而不是 0 或 42的解决方法建议,希望对你解决我在下面写了一个 C 代码。我想解释为什么输出是 34 而不是 0 或 42有所启发或帮助;

我想解释一下以下代码:

#include <stdio.h> 
int main()
{
   int x = 042;
   printf("%d",X);
}

解决方法

基数 8(八进制)中的 42 是基数 10(十进制)中的 34。

以零为前缀的数字文字在 C 中被解释为八进制。

042 更改为仅 42

,

给任何数字添加前缀 0 使其成为八进制数。 如果假设 x 等于 096,那么编译器将显示错误,因为 96 不是有效的八进制数。

  int x=042;
  printf("%d",X); /* output : 34
  x is in octal representation but %d is used to print for decimal number,so 042 change to decimal */

  printf("%o",X); /* output : 42
  %o is used to print in octal representation */

此处使用了以下格式说明符:

%d - 以整数格式打印值

%o - 以八进制格式打印值

%x - 以十六进制格式打印值(字母将以小写形式打印)

%X - 以十六进制格式打印值(字母将以大写形式打印)

,

在 C 语言中,以零为前缀的数字被认为是八进制。

ISO/IEC 9899:2018 para 6.4.4.1 整数常量适用

所以,042 是八进制 = 34 十进制。

大佬总结

以上是大佬教程为你收集整理的我在下面写了一个 C 代码。我想解释为什么输出是 34 而不是 0 或 42全部内容,希望文章能够帮你解决我在下面写了一个 C 代码。我想解释为什么输出是 34 而不是 0 或 42所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。