求解答,最好具体一点
C语言,指针
答案分别是11 11 11 12 12 20 20 20
px最初指向的x,那么*px就等价于x[0]
1.++*px就相当于++x[0],先自加,再输出,所以是11
2.*px还是指向x[0],所以输出的还是11(前面自加过了)
3.(*px)++,是先输出,后自加,所以输出还是11,但是x[0]的值变成12了
4.*px还是x[0],所以输出12
5.*px++,这里是先取值后++,所以还是12.这里执行的是px++,注意没有括号,所以px指向了x[1]
6.*px是x[1],所以输出20
7.先执行了px=x,所以px又指向x[0]了,然后执行*++px,先++后取值,所以输出的还是x[1],输出20
8.还是*px,所以还是20
++*px就是让第一个先+1,再输出,11
*px输出11
(px)++就是输出px,然后再+1,所以输出11,之后px指向的是12了
px输出12
然后输出px 12,之后px++指向第二个元素
输出20
因为px=x,所以又调回来了,然后++px又是输出第二个元素,20
最后还是输出20
11,11,11,12,12,20,20,20