关于C语言c = (b=a+2) - (a=2); 的错误
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 04:20:16
关于C语言c = (b=a+2) - (a=2); 的错误
a=5;
c = (b=a+2) - (a=2);
括号中的b=a+2 和 a=2 同时运行的 所以系统不知道a=5还是a=2 因此产生了错误
a=5;
c = (b=a+2) - (a=2);
括号中的b=a+2 和 a=2 同时运行的 所以系统不知道a=5还是a=2 因此产生了错误
不是,该式没有任何错误,该式是从左往右执行的,最后c的值为5
再问: 我在网上大学的老师说的 你帮忙看一下:
c = (b = a+2) - (a=2);有两个时间点p1和p2本例中,(a=2)的副作用在p1和p2之间是不确定的。然后,标准有这么一段,第二条规则说时间点p1(旧值)只能被用作计算新值。(b=a+2)中b的新值是由a来确定的,而a所指定的值是p1前的值还是新值是不确定的。另应写做 c = (b = a+2, a=2, b-a);
再答: (b=a+2)中b的新值是确实由a来确定的而a所指定的值是p1前的值还是新值是不确定的,应该是指 c = (b = a+2) - (a=2);的执行顺序和编译器有关,因此a的值不确定
但是不能说这条语句有错,顶多是算作有歧义,因为它能够编译通过,并且运行出结果下面为运行结果的截图,在VS2010中是从左往右执行的,你可以参考一下:
再问: 我在网上大学的老师说的 你帮忙看一下:
c = (b = a+2) - (a=2);有两个时间点p1和p2本例中,(a=2)的副作用在p1和p2之间是不确定的。然后,标准有这么一段,第二条规则说时间点p1(旧值)只能被用作计算新值。(b=a+2)中b的新值是由a来确定的,而a所指定的值是p1前的值还是新值是不确定的。另应写做 c = (b = a+2, a=2, b-a);
再答: (b=a+2)中b的新值是确实由a来确定的而a所指定的值是p1前的值还是新值是不确定的,应该是指 c = (b = a+2) - (a=2);的执行顺序和编译器有关,因此a的值不确定
但是不能说这条语句有错,顶多是算作有歧义,因为它能够编译通过,并且运行出结果下面为运行结果的截图,在VS2010中是从左往右执行的,你可以参考一下:
关于C语言c = (b=a+2) - (a=2); 的错误
C语言c=(a^b)
C语言中,a=(b,c) ,
c语言 带符号数a=-2 b=1 c=a+b c
C语言的“ r=a%b
13.在C语言中,错误的语句是( ).A.a=b=c;B. ;C.breakD.b=3*5
c语言中,符号a=2,b=a
C语言中,max=(a>((b>c)?b:c)?a:(b>c:b:c));
c语言d=!a&&!b||!a
C语言的问题:a=b>c;是什么意思
关于C语言For语句下列程序执行的结果是a=1b=2;c=3;while(b<a<c){t=a;a=b;b=
关于C语言的一个问题.a+=a+b||a*b-a&&b的值是多少