假设 p 是指向数组 arr 中第 n 个元素的指针,那么 *p++、*++p、(*p)++ 分别是什么意思呢?
*p++ 等价于 *(p++),表示先取得第 n 个元素的值,再将 p 指向下一个元素。
需要注意的是,尽管这里p++是在括号里面,但仍是取值,再指向下一个。
*++p 等价于 *(++p),会先进行 ++p 运算,使得 p 的值增加,指向下一个元素,整体上相当于 *(p+1),所以会获得第 n+1 个数组元素的值。
(*p)++ 就非常简单了,会先取得第 n 个元素的值,再对该元素的值加 1。假设 p 指向第 0 个元素,并且第 0 个元素的值为 99,执行完该语句后,第 0 个元素的值就会变为 100
本文解析指针p指向数组元素时,*p++, *++p和(*p)++的含义:前者获取并递增指针,后者先递增再取值。通过实例说明不同操作在内存变化和元素值上的影响。
2971

被折叠的 条评论
为什么被折叠?



