1 #include<stdio.h> 2 3 main() 4 { 5 int *ip=0; // ++ 优先级等于 * 且都大于 = 优先级,结合方式从右到左 6 int x = 8; 7 int y,z,h; 8 ip = &x; 9 y = ++*ip; //先*ip,然后++(*ip),发挥前置++作用 10 printf("%d ",*ip); //9 自增 11 printf("%d ",y); //9 自增后的值赋值给y 12 13 z = (*ip)++; //先*ip,再后置++(发挥后置++作用),这里用()优先级大于++和*,提高(*ip)的优先级 14 printf("%d ",*ip); //10 自增 15 printf("%d ",z); //9 自增前的值赋值给z 16 17 h = *ip++; //先后置++,ip+1,再*(ip+1) 18 printf("%d ",*ip); //系统随机数 19 printf("%d ",h); //10 20 21 //思考:但是优先级低的 = 为什么会把 (*ip) 赋值给 h? 22 //解答:因为后置++的作用,*ip取的依旧是未自增的ip,然后把这个*ip赋值给h 23 }
讲解在代码中已经很详细了,这个为了帮助大家更好的理解
1、取值符*
2、取地址符&
3、前置++、后置++
4、优先级
13:15:09 2017-12-09
本文为博主原创,转载请注明出处http://www.cnblogs.com/Fsiswo/p/8011246.html