Afn*_*nan -6 c++ post-increment
C中以下行的含义是什么?执行顺序是什么?
float *x,*y;
*x++=*y++
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释这是如何评价的?
Eri*_*hil 10
对于原始代码:
x++ = y++
Run Code Online (Sandbox Code Playgroud)
永远不会评估此行,因为它不是合法的C并且不会被编译.结果x++不是左值,并且不允许在赋值的左侧.
对于更新的代码:
float x,y;
*x++ = *y++
Run Code Online (Sandbox Code Playgroud)
这不合法,因为*无法应用于float.
我将添加此代码:
float *x, *y;
*x++ = *y++;
Run Code Online (Sandbox Code Playgroud)
这段代码说:
float *xt,平等的x.float *yt,平等的y.x.y.*xt = *yt.实际的操作可以以各种顺序来执行,提供xt取前的值x被更新时,yt取前的值y被更新,并且xt和yt在使用之前它们被定义.