为什么050不等于50以下代码段?
#include <stdio.h>
int main(void) {
int x=050,y=50;
int ans;
ans= x==y ? x+3 : y+7;
printf("%d\n",ans);
}
Run Code Online (Sandbox Code Playgroud)
因为050被认为是八进制并被50认为是十进制的.
所以x = 050基本上意味着x = 40.
6.4.4.1/3
甲十进制常量始于一个非零数字和由十进制数字序列的.八进制常量由pre fi x 0组成, 可选地后跟一个数字0到7的序列.