社区
工具平台和程序库
帖子详情
p++和++p的又一个的区别
snnn
2004-02-21 06:51:18
关于这两个定义上的区别大家都知道
我刚又发现一个很重要的区别
假如p的类型是T
p++的返回值类型是T&
而++p通常情况下没有返回值
...全文
74
48
打赏
收藏
p++和++p的又一个的区别
关于这两个定义上的区别大家都知道 我刚又发现一个很重要的区别 假如p的类型是T p++的返回值类型是T& 而++p通常情况下没有返回值
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
48 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
指针(
++
p, p
++
, *p
++
,*(p
++
),(*p)
++
,*
++
p,
++
*p)的
区别
一,
++
p,p
++
++
p是先对p自增,再使用p的值. p
++
是先使用p的值,再自增 二,*p
++
,*(p
++
) 两者相同 " * 和
++
"优先级相同 自右向左结合,*p
++
可以看作为*(p
++
) 其中(p
++
)先使用p的值,再自增1 假设地址为0x00, *(p+1)则取0x00的地址值. 三,(*p)
++
先分析优先级,有括号,先计算括号内,即先计算(*p)得到X,再计算X
++
. 四,*
++
p *和
++
优先级一样,考虑自右向左结合,所以
++
p先计算得到X,再计算*X.
++
p是对p地址
对*p
++
与*
++
p;(*p)
++
与
++
(*p)的理解
参考:https://blog.csdn.net/baidu_37973494/article/details/82761455 *p
++
:等同于:*p; p += 1; 解析:由于*和
++
的运算优先级一样,且是右结合。故*p
++
相当于*(p
++
),p先与
++
结合,然后p
++
整体再与*结合。前面陈述是一种最常见的错误,很多初学者也是这么理解的。但是,因为
++
后置的时候,本身含...
C语言基础知识:*p
++
与*(p
++
),*
++
p与*(
++
p),(*p)
++
与
++
(*p),
++
*p的详细理解
p
++
和 *(p
++
) 都返回 p 自增之前的值。*
++
p 和 *(
++
p) 都返回 p 自增之后指向的值。关键在于理解前缀自增(
++
p)和后缀自增(p
++
)之间的
区别
,以及它们与解引用操作(*)的结合方式。前缀自增先改变指针的值,然后返回新的指针值;后缀自增返回原指针值,然后改变指针的值。解引用操作(*)则用于获取指针当前指向的值。二、(*p)
++
与
++
(*p)在C和C
++
中,(*p)
++
和
++
(*p) 这两个表达式虽然看起来相似,尽管它们都涉及到指针p。
*p
++
和*(p
++
)以及(*p)
++
的
区别
P
++
,因为*和
++
的优先级一样,结合方式都是自右向左,先执行P
++
使P指向下
一个
地址,然后再执行*操作,即取P已经增加了1后,指向的地址的数值。(*P)
++
,指的是先取p指向的地址的变量的数值,然后数组再自增1。一般是定义
一个
变量,把取的值增一后存入变量中。即,先取arr[0]的值,然后又增1,把此值给a;p此时仍然指向arr[0];程序先把arr数组的首地址给了p;然后执行p
++
操作,此时p指向了arr[1];(或者:p=arr[0])*(P
++
)和*P
++
一样的功能。
*p
++
和*
++
p的
区别
接下来,通过示例彻底理解自增运算符的两种用法(自减的用法与之类似,只不过是加1变成了减1)。 1、
++
i和i
++
的
区别
如清单1(注意代码中的注释): #include int main(void) { int a, b, i = 7; i
++
; //等价于i = i + 1;
++
i; //等价于i = i + 1;
工具平台和程序库
24,852
社区成员
27,330
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章