C 如何计算多个减号运算符?
这就是问题所在,为了找到答案,我只需运行程序并找到结果 a=0 b=-6 c=0 但我不应该在回答这些问题时使用电脑。所以这是一个问题:是不是无论怎样,编译器都会得到正确的“-”符号?“b”有一对大括号,但“c”没有,这显然没有什么区别。有人能解释一下吗C 如何计算多个减号运算符?,c,C,这就是问题所在,为了找到答案,我只需运行程序并找到结果 a=0 b=-6 c=0 但我不应该在回答这些问题时使用电脑。所以这是一个问题:是不是无论怎样,编译器都会得到正确的“-”符号?“b”有一对大括号,但“c”没有,这显然没有什么区别。有人能解释一下吗 谢谢。只是换了个牌子而已 int main( void ) { int a, b,c ; a = -3 - - 3 ; b = -3 - - ( - 3 ) ; c= -3 - - - -3; pri
谢谢。只是换了个牌子而已
int main( void )
{
int a, b,c ;
a = -3 - - 3 ;
b = -3 - - ( - 3 ) ;
c= -3 - - - -3;
printf ( "a = %d b = %d c=%d", a, b ,c) ;
}
这只是标志的改变
int main( void )
{
int a, b,c ;
a = -3 - - 3 ;
b = -3 - - ( - 3 ) ;
c= -3 - - - -3;
printf ( "a = %d b = %d c=%d", a, b ,c) ;
}
每个一元
-
对前面的表达式求反,并从右向左绑定。此外,它的优先级高于从左向右绑定的二进制-
运算符。因此:
a = -3 - -3 = -3 + 3 = 0
b = -3 - - (- 3) = -3 - (+3) = -3 - 3 = -6
c = -3 - - - -3 = -3 - - 3 = -3 + 3 = 0
同:
c= -3 - - - -3;
是的,这些表达式的结果定义得很好
另一方面,如果您正在处理递增前运算符或递增后运算符
--
或++
,并试图在同一表达式中对同一变量多次使用它们,则此时您会遇到。每个一元-
对前面的表达式求反,并从右向左绑定。此外,它的优先级高于从左向右绑定的二进制-
运算符。因此:
a = -3 - -3 = -3 + 3 = 0
b = -3 - - (- 3) = -3 - (+3) = -3 - 3 = -6
c = -3 - - - -3 = -3 - - 3 = -3 + 3 = 0
同:
c= -3 - - - -3;
是的,这些表达式的结果定义得很好
另一方面,如果您正在处理预增量或后增量运算符
--
或++
,并试图在同一表达式中对同一变量多次使用它们,则会遇到。-3----3
读取为负三减负。。。负片负片3.-3----3
读取为负三减负。。。否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定否定。您可以通过以下两个链接回答自己的问题:--理解这一点的关键是要认识到C有两个不同的-
运算符。一元一元和二元一元。在本例中,C将给出与普通初等数学相同的结果。这个问题是关于求值顺序和运算符优先级的。您可以通过以下两个链接回答自己的问题:--理解这一点的关键是要认识到C有两个不同的-
运算符。一元一元和二元一元。不过,在本例中,C将给出与普通初等数学相同的结果代码>另一个()
大约3。-
不是整数常量3
的一部分。为了完整性:c=((3))-((3))代码>另一个()
大约3。-
不是整数常量3
的一部分。