int x=10; int y=x-- - --x; => y=0
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/05/16 02:10:40
int x=10; int y=x-- - --x; => y=0
未定义行为,具体结果依赖于具体编译器的实现方法,讨论其取值没有意义
x--和--x两个参数的运算顺序语言标准不进行规定
楼下说法不正确
y = x-- - --x;可能的行为有
1, y = x-- - --x;
2, y = --x - x--;
此题违背语言标准,没有正确答案
截图证明,gcc环境下y为0,VS环境下可能为1,没装VS,楼主可以自行实验求证
再问: 但我在两个编译器下进行运算 结果都是0
再答: 那么说明VS也使用了这种行为策略进行编译,但是从理论角度分析,其结果是不确定的标准如此表述:unspecified behaviorThe order in which the function designator, arguments, and subexpressions within the arguments are evaluated in a function call明确说明了一个参数的运算顺序是不进行定义的
试验了一下,Clang编译器的编译结果不是0
x--和--x两个参数的运算顺序语言标准不进行规定
楼下说法不正确
y = x-- - --x;可能的行为有
1, y = x-- - --x;
2, y = --x - x--;
此题违背语言标准,没有正确答案
截图证明,gcc环境下y为0,VS环境下可能为1,没装VS,楼主可以自行实验求证
再问: 但我在两个编译器下进行运算 结果都是0
再答: 那么说明VS也使用了这种行为策略进行编译,但是从理论角度分析,其结果是不确定的标准如此表述:unspecified behaviorThe order in which the function designator, arguments, and subexpressions within the arguments are evaluated in a function call明确说明了一个参数的运算顺序是不进行定义的
试验了一下,Clang编译器的编译结果不是0
int x=10; int y=x-- - --x; => y=0
计算机位操作:int abs( int x ) { int y ; y = x > > 31 ; return (x^y
void f( int y,int *x) {y=y+*x; *x=*x+y;} main( ) { int x=2,y
Point(int x=0,int y=0):x(x),y(y){ count++; }我不懂
main() { int x=10; int y=x++; printf("%d,%d\n",(x++,y),y++);
Point(int x=0,int y=0):x(x),y(y){}和Point(int x=0,int y=0){x=
#includevoid f(int y,int *x){ y=y+*x; *x=*x+y;} void main(){
int max(int x,int y) { int z; if(x>y) z=x; else z=y; return(
fun(int x,int y,int z) {z=x*x+y*y;} main() {int a=31; fun(5,
for(int x=0,y=0;!x&&y
int func(int x,int y ) { return(x+y) } main() {int a=1,b=2,c
java 中有个题目int x=10; int y=10; x^=y^=y; x=?;y=?