在C中,为什么这条语句'i = 5i'编译并将'i'编译为零?

问题描述:

在GCC下面的C代码编译法正确在C中,为什么这条语句'i = 5i'编译并将'i'编译为零?

int i = 7; 
i = 5i; 
printf("%d", i); 

而且prints- 0

陈述i = 5i显然没有意义。那么为什么地球上的代码不会给出任何编译错误?为什么i变成0

+4

虚数常量是GCC扩展 – BLUEPIXY

这是一个GCC extension for representing the imaginary component of complex numbers

如果使用-pedantic-Werrorhttp://ideone.com/PMlZr5进行编译,编译器会发出抱怨。

+0

所以,这里'5i'的'i'被视为*虚数*?如果是这样,那么为什么用'j'替换'i'也会得到相同的结果? –

+1

@MinhasKamal - 在链接到的文档页面上提及;) –

+0

哦!我错过了'j'! –