减法运算的 - 和 - 符号之间的差异

时间:2015-05-07 10:51:25

标签: c

我无法理解这两个操作符之间的区别。

用法给出了输出的差异。

以下代码段给出错误:

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 ;
    }
}

请让我知道其中的差异。

3 个答案:

答案 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)

区别 - 一个字符是一个减号字符,另一个字符是一个看似负面的晦涩字符