(*p)++,*p++,*(p+1)分别是什么意思
时间: 2024-01-17 10:18:18 浏览: 41
(*p)++表示先解引用指针p所指向的内存地址,然后将该地址对应的值加1。而*p++表示先解引用指针p所指向的内存地址,并返回该地址对应的值,然后再将指针p递增1。*(p+1)表示先将指针p的值加1,然后解引用指针p所指向的内存地址,并返回该地址对应的值。
这三个表达式涉及了指针的递增和解引用,其结果的值取决于递增/递减运算符和解引用运算符的位置和优先级。
相关问题
*p++和(*p)++
*p++和(*p)++都是指针操作符,但它们的含义不同。
*p++表示先取出指针p所指向的值,然后将指针p向后移动一个单位。例如,如果p指向一个数组,那么*p++就是取出数组中当前位置的值,然后将指针p指向下一个元素。
(*p)++表示先取出指针p所指向的值,然后将该值加1。例如,如果p指向一个整型变量,那么(*p)++就是将该变量的值加1。
需要注意的是,这两个操作符的优先级不同。*p++中++的优先级高于*,因此先执行++操作,再执行*操作;而(*p)++中()的优先级高于*和++,因此先执行()中的操作,再执行++操作。
*p++与( *p)++有什么区别
*p++和(*p)++是两种不同的表达式,它们之间有以下区别:
1. *p++:这个表达式先对指针p进行解引用,然后再对p进行递增操作。换句话说,它先取出p指向的值,然后再将p的值加1。这个表达式的值是解引用前的p指向的值。
2. (*p)++:这个表达式先对指针p进行解引用,然后再对解引用后的值进行递增操作。换句话说,它先取出p指向的值,然后再将该值加1。这个表达式的值是解引用后的p指向的值加1。
总结起来,*p++是先解引用再递增,而(*p)++是先解引用后递增。这两个表达式的结果值是不同的。