*p++和*(p++)有什么区别
时间: 2024-01-17 19:17:51 浏览: 33
```shell
*(p++):这个表达式先执行后置递增操作 p++,然后对指针 p 的原始值(递增之前的值)进行解引用操作,取得该地址上的值,即取得 p 原始指向的元素的值。
```
```shell
*p++:这个表达式先对指针 p 进行解引用操作,取得该地址上的值,然后再执行后置递增操作 p++,即先取得 p 指向的元素的值,然后再将指针 p 后移一位。
```
相关问题
指针*p++和*p+1有什么区别?
指针*p++和*p+1有以下区别:
1. 指针*p++:这是一个后缀自增运算符,它先使用指针p指向的值,然后将指针p的值增加1。换句话说,它先解引用指针p,然后再将指针p的值增加1。例如,如果p指向一个整型数组的第一个元素,那么*p++将返回数组的第一个元素的值,并将指针p指向数组的第二个元素。
2. *p+1:这是一个解引用运算符和加法运算符的组合。它先解引用指针p,然后将解引用后的值加1。换句话说,它返回指针p指向的值加1的结果。例如,如果p指向一个整型变量,那么*p+1将返回该变量的值加1的结果。
总结起来,指针*p++先解引用指针再自增,而*p+1先解引用指针再加1。
*p++与( *p)++有什么区别
*p++和(*p)++是两种不同的表达式,它们之间有以下区别:
1. *p++:这个表达式先对指针p进行解引用,然后再对p进行递增操作。换句话说,它先取出p指向的值,然后再将p的值加1。这个表达式的值是解引用前的p指向的值。
2. (*p)++:这个表达式先对指针p进行解引用,然后再对解引用后的值进行递增操作。换句话说,它先取出p指向的值,然后再将该值加1。这个表达式的值是解引用后的p指向的值加1。
总结起来,*p++是先解引用再递增,而(*p)++是先解引用后递增。这两个表达式的结果值是不同的。