我无法理解这两个操作符之间的区别。
用法给出了输出的差异。
以下代码段给出错误:
void main()
{
float x = 1.1 ;
while ( x == 1.1 )
{
printf ( "\n%f", x ) ;
x = x – 0.1 ;
}
}
但以下工作正常:
void main()
{
float x = 1.1 ;
while ( x == 1.1 )
{
printf ( "\n%f", x ) ;
x = x - 0.1 ;
}
}
请让我知道其中的差异。
答案 0 :(得分:7)
编译器需要一个-
字符进行减法。这有ASCII码45(十进制)== 0x2D(十六进制)
它出现在每个键盘上,通常是两次(普通键盘,键盘)
这些天我们有Unicode,并且有很多"字符"看起来相似但具有不同的含义,编译器将无法识别这些"异国情调" charactes作为正常减号运算符但产生"语法错误"代替。
答案 1 :(得分:4)
我无法理解这两个操作符之间的区别
减号-
是c
中的vaild 运算符,二元减法运算符,ASCII中的十进制45
。
另一个名为(en
/ em
/ figure
/ quotation
) dash 中的任何一个不是有效的c
运算符,(它是Unicode字符)。编译器很抱怨。
FWIW,在您的代码中,
while ( x == 1.1 )
将几乎总是产生 FALSE ,因为没有按照您的预期执行。 That is not how you compare floating point numbers。你应该改变你的逻辑。
另请注意,main()
的推荐签名为int main(void)
。
答案 2 :(得分:1)
区别 - 一个字符是一个减号字符,另一个字符是一个看似负面的晦涩字符