【发布时间】:2018-12-07 01:56:40
【问题描述】:
出于好奇,我写了一个这样的程序:
auto number1 = 100;
auto number2 = 02000;
auto number3 = 2;
auto result = (number1 + number2) / number3;
std::cout << result;
有趣的是,程序输出 562。所以,在 Visual Studio 中,我将鼠标悬停在变量“number2”上,它显示了(int) 1024。我不明白为什么会这样。所以,我在 php 中尝试了它的等价物:
$number1 = 100;
$number2 = 02000;
$number3 = 2;
$result = ($number1 + $number2) / $number3;
echo $result;
结果是相同的 562。我错过了什么,因为如果我删除 number2 前面的零使其成为“2000”,它会按预期显示 1050
【问题讨论】:
-
前导零使
int值成为octal值。 -
引出一个有趣的旁注:在 C++ 中,0 被明确声明为八进制,但在 PHP 中它是十进制。
-
@smith,我应该删除这个问题,因为它肯定是重复的吗?
标签: php c++ zero arithmetic-expressions