1、中四可面C知C语言解惑G口尼卫0g时CHINA-PUB.COMBeyond-fly第1章操作符C语言程序由语句构成,而语句由表达式构成,表达式又由操作符和操作数构成。C语言中的操作符非常丰富本书的附录B所给出的操作符汇总表就是最好的证据。正是因为这种丰富性,为操作符确定操作数的规则就成为了我们理解C语言表达式的核心和关键。那些规则即所谓的“优先级”和“关联性”汇总在本书附录A的操作符优先级表里。请使用该表格来解答本章中的谜题。谜题1.1基本算术操作符请问,下面这个程序的输出是什么?main()int x;x=-3+4*5-6;printf(8dn,x);(1.1.1)x=3+485-6;pri
2、ntf(8dn,x);(1.1.2)x=-3*48-6/5;printf(8dn,x);(1.1.3)x=(7+6)85/2;printf(8dn,x);(1.1.4)Beyond-fly2第1章操作符输出:11(1.1.1)1(1.1.2)(1.1.3)1(1.1.4)Beyond-fly谜题11基本算术操作符3解惑1.1基本算术操作符1.1.1X=-3+4*5-6在解答这道谜题之前,请大家先把附录A中的操作符优先级表从头到尾好好看一遍。x=(-3)+4*5-6在这个表达式里,优先级最高的操作符是一元操作符“-”。我们将使用括号来表明操作符与操作数的绑定情况。X=(-3)+(4*5)-6在这
3、个表达式里,优先级第二高的操作符是乘法操作符“*”。=(-3)+(4*5)-6“+”和“_”操作符的优先级是一样的。如果操作符的优先级相同,它们与操作数的绑定顺序将由该级别的关联规则来决定。具体到“+”和“-”,关联是从左到右。所以先对“+”操作符进行绑定。=(-3)+(4*5)-6)接下来,对“”操作符进行绑定。(=((-3)+(4*5)-6)最后绑定的是出现在操作符优先级表末尾的“=”操作符。把每个操作符的操作数都确定下来之后,我们就可以对表达式进行求值了。(x=(-3+(4*5))-6)对于这个表达式,求值过程将按由内而外的顺序进行。(=(-3+20)-6)把每一个子表达式替换为相应的计算结果。(=(17-6)(=11)对赋值表达式而言,它的值是“=”操作符右边的计11,一个整数算结果,类型是“=”操作符左边的变量的类型。ysht.monm.concom