P61 指针

来源:百度知道 编辑:UC知道 时间:2024/06/13 11:59:29
m=*pn++与 m=(*pn)++ 的区别
m=*++pn 与m=++(*pn)的区别
举个实例

第一个是由于++的优先级高所以是先++再取值,即m=*(pn++)
第二个是由于有括号所以先取值再++
后两个同理
下面举个例子说一下:
int a[]={11,22,33,44,55,66};
int *pn=a;
*pn++是先加加,但是由于++在后,所以他是语句完了之后才加,所以这时pn还是指在a中的第一个数,然后*取值就是11
(*pn)++是先取值取到a中第一个数11然后在++,由于是后加加所以暂不执行,所以还是11
*++pn是先++,由于是++在前,所以及时更新,所以p此时只想a中第二个数,然后*取值是22
++(*pn)是先取值即取a中的第一个数11,然后再++,由于++在前所以是12

m=*pn++是指针在运算后加1

m=(*pn)++是pn指针指向的数据加1

m=*++pn 与m=++(*pn)也是相同的意思但是++在前面表示先进行加1然后在赋值给m

我也学没多久多多指教