下列程序的运行结果是( )
|
正确答案:1 6
解析:
函数执行时形参的执行顺序是从左到右,此题中先执行++(*p).x,再执行 *(p->y)
再考虑运算符优先级:优先级从高到低依次是() . 前++,因此先执行 (*p).x,得到c[0].x, 值为5,前++之后得到6,
也就是说前++操作是对变量x执行的,不影响p指针的指向,则*(p->y)的结果为*a,即a[0],最终结果是1。
形参执行顺序是从右到左,但是printf的打印顺序还是从左到右,因此结果为1,6
下列程序的运行结果是( )
|
解析:
函数执行时形参的执行顺序是从左到右,此题中先执行++(*p).x,再执行 *(p->y)
再考虑运算符优先级:优先级从高到低依次是() . 前++,因此先执行 (*p).x,得到c[0].x, 值为5,前++之后得到6,
也就是说前++操作是对变量x执行的,不影响p指针的指向,则*(p->y)的结果为*a,即a[0],最终结果是1。
形参执行顺序是从右到左,但是printf的打印顺序还是从左到右,因此结果为1,6