admin 管理员组

文章数量: 887053

*p++,*(p++),*++p,(*p)++区别?


*p++:等同于:*p; p += 1;

解析:由于和++的运算优先级一样,且是右>结合。故p++相当于*(p++),p先与++结合,>然后p++整体再与结合。前面陈述是一种最
常见的错误,很多初学者也是这么理解的。
但是,因为++后置的时候,本身含义就是先
运算后增加1(运算指的是p++作为一个整体
与前面的
进行运算;增加1指的是p+1),所
以实际上p++符号整体对外表现的值是p的
值,运算完成后p再加1.

【注意】是运算后p再加1,而不是p所指向的变量*p再加1
*++p:等同于 p += 1; *p;

解析:由于++在p的前面,++前置的含义是,先加1,得到一个新的p(它的值是原来p的值加1)。然后这个新的p再与前面的*结合.

【总结】无论是p++还是++p,都是指针p += 1,即p的值+1,而不是p所指向的变量*p的值+1。

++前置与&#

本文标签: *p *(p) (*p)区别