C语言基础知识1

时间:2015-10-03 09:08:36

标签: c

如果a是变量,则C中的a ++和a = a + 1之间有什么区别? 告诉我以下任务之间的区别;

x=a+1;
x=a++;

我无法在Google上找到令人信服的解释。请逐步清楚地解释差异。

5 个答案:

答案 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将增加1a的新值将分配给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++的值,然后递增xa本身就是一个操作,您可以将其称为单个语句来递增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++;

结果a1x0

答案 3 :(得分:0)

x = a++首先将a的值返回给变量x然后再递增。

x = a+1此处评估a+1,结果存储在x

答案 4 :(得分:0)

3差异

  1. 返回值和副作用

    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
    
  2. 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; (又名后缀增量)优先于简单添加。

  3. ++仅适用于整数和非++指针类型。 void*适用于所有标量类型,包括+1

    double