c语言中,p=++d 和p=d++的区别

作者&投稿:木闸 (若有异议请与网页底部的电邮联系)
c语言,d+=p++是什么意思 ;~

  1、先看 d += p; 这是一条复合赋值运算,相当于d = d +p;
  因此 d += p++ ,相当于 d = d + p++;

  2、整个表达式的执行流程:
因为是后自增运算符,所以
  第1步:执行d = d + p ;
  第2步:执行 p++
  假设,d=-1,p = 2,则执行后,d = 1,p = 3。

d++表示在当前语句后执行+1,++d表示在当前语句中执行+1
例如
对d赋初值为d=5,
d++时语句中d的值为5,语句执行完后d的值为6,
++d时语句中d的值为6,语句执行完后d的值仍为6.

int p=0;
int d=0;
p=++d; //d先自+1后再赋值给p
此时:p=1, d=1;

int p=0;
int d=0;
p=d++; //d先赋值给p后再自+1
此时:p=0, d=1;

p=++d;和p=d++执行结果如下:
p=++d执行后 p=d+1; d=d+1;
p=d++执行后 p=d; d=d+1;

p=++d ---> 先++再返回d的值,最后p=d
p=d++ ---> 返回d的值 再++,最后 p=d-1