此次本章是掌握 ++( *p)和( *p)++的区别
int main(void) {
int a,b,c;
int *pa,*pb,*pc;
pa=&a;
pb=&b;
pc=&c;
scanf("%d%d",pa,pb); //2 3
printf("%d,%d",*pa,*pb); //2 3
c=a+b;//5
printf(",%d",*pc);//5
*pc=a+*pb;//5=2+3
printf(",%d",c);//5
c=*pa**pb;//6=2*3
printf(",%d",*pc);//6
c=++(*pa)+(*pb)++;//c= 2+1 + 3
//c=++a + b++;
//D=++a; a=a+1; D=a; 此时a=3
//E=b++; E=b; b=b+1; 此时b=4
//c=D+E;
printf(",%d",c);//6
c=(*pa)++ +(*pb)++;
//c= a++ + b++;
//D=a++; D=a; a=a+1;
//E=b++; E=b; b=b+1
//c=D+E c=7
printf(",%d",c);//7
printf(",%d,%d",a,b);//
printf("\n");
system("pause");
return 0;
}
++(p)和(p)++的区别.png
我代码里面已经包含了注释,你们一定不要看错了,我的那些分解步骤啊,比如我这些注释
//c=++a + b++;
//D=++a; a=a+1; D=a; 此时a=3
//E=b++; E=b; b=b+1; 此时b=4
//c=D+E;
注意这里面的c的结果是c=D+E,此时的你不要揪着a和b了
网友评论