如果a是变量,则C中的a ++和a = a + 1之间有什么区别? 告诉我以下任务之间的区别;
x=a+1;
x=a++;
我无法在Google上找到令人信服的解释。请逐步清楚地解释差异。
答案 0 :(得分:2)
a = a+1;
计算a+1
的结果并将其分配给a
a++;
按a
递增1
,但评估为a
的上一个值。
++a;
按a
递增1
,并评估a
的新值。
a += 1
与++a;
相同。
所以例如:
x = a++;
→a
将增加1
,之前a
的值将分配给x
。
x = ++a;
→a
将增加1
,a
的新值将分配给x
。
答案 1 :(得分:1)
$Days = round(abs(strtotime($dob)-strtotime($currentDate))/86400);
只设置 google.maps.event.addListener(map, 'click', function( event ){
alert( "Latitude: "+event.latLng.lat()+" "+", longitude: "+event.latLng.lng() );
});
的值。
x=a+1
首先将x
设置为x=a++
的值,然后递增x
。 a
本身就是一个操作,您可以将其称为单个语句来递增a
,而无需将其分配给a++
。
仅供参考,还有a
,可以像这样使用:
x
。在这种情况下,首先递增++a
,然后将递增的值分配给x=++a
。在任何一种情况下,a
运算符都会修改x
,而++
则不然。
答案 2 :(得分:1)
从C11标准(草案):
6.5.2.4后缀增量[...]运算符[...]
[...]
2 postfix ++运算符的结果是操作数的值。作为副作用, 操作数对象的值递增(即,相应类型的值为1 添加到它)。
所以
int a = 0;
int x = a++;
结果a
为1
而x
为0
。
答案 3 :(得分:0)
x = a++
首先将a
的值返回给变量x
然后再递增。
x = a+1
此处评估a+1
,结果存储在x
答案 4 :(得分:0)
3差异
返回值和副作用
taskkill /im iexplore.exe /f
taskkill /t /f /im chrome.exe
taskkill /t /f /im communicator.exe
ping 127.0.0.1 -n 4
start iexplore.exe http://site1
TIMEOUT>NUL /T 3 /NOBREAK
start iexplore.exe http://site2
start communicator.exe
Operator precedence。 post-fix // a is incremented, but its former value is assigned to x
x=a++; //
// a is unchanged. The sum of `a+1`is assigned to x
x=a+1;
(又名后缀增量)优先于简单添加。
++
仅适用于整数和非++
指针类型。 void*
适用于所有标量类型,包括+1
。
double