相关疑难解决方法(0)

0是十进制文字还是八进制文字?

零总是为零,所以没关系.但在最近与我的朋友讨论时,他说今天几乎没有使用八进制文字.然后我突然意识到我的代码几乎所有的整数文字都是八进制的,即0.

0根据C++语法是八进制文字吗?标准说什么?

c++ zero octal

326
推荐指数
2
解决办法
2万
查看次数

C如何处理带有前导零的整数文字,以及atoi怎么样?

当您创建一个带前导零的整数时,c如何处理它?对于不同版本的C,它有什么不同?

在我的情况下,它们似乎只是被丢弃(但也许这就是printf的作用?):

#include <stdio.h>

int main() {
    int a = 005;
    printf("%i\n", a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用printf来填充0,但我只是想知道它是如何工作的.

c literals

8
推荐指数
4
解决办法
1万
查看次数

为什么会导致错误?

我在CODEBLOCK上用C++编写了一个简单的程序.该计划如下:

#include <iostream>
using namespace std;

int main()
{
    int num = 09;              //ERROR: Invalid digit 9 in octal constant
    cout << num << endl;

    num = 08;             //ERROR: Invalid digit 9 in octal constant
    cout << num << endl;


    return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码与前一代码相同.但我改变了价值并写了num = 09而不是015.

我同意如果我初始化(int num = 015),它会在OCTAL中给出13的输出.

但是在我试图初始化的上述程序中(int num = 09和num = 08),它给出了你可以看到的错误.

首先,我想知道它为什么会产生错误以及如何产生错误?

其次是它背后的逻辑是什么?

如果有合适的例子,请给我合乎逻辑的理由.

c c++ literals

-2
推荐指数
1
解决办法
244
查看次数

标签 统计

c ×2

c++ ×2

literals ×2

octal ×1

zero ×1