*(p+i) 和 *p+i的区别

*(p+i) 和 *p+i 都是 C/C++ 中的指针运算,但它们的作用是不同的。

*(p+i) 是通过指针 p 访问其指向的数组中的第 i 个元素。这种情况下,p 必须是指向数组的指针,而 i 是数组索引。

例如,如果 p 指向一个包含 10 个整数的数组,那么 *(p+3) 将会访问数组中的第四个元素(因为在 C/C++ 中,数组索引是从 0 开始的)。

另一方面,*p+i 是先解引用指针 p,然后加上 i。这通常没有意义,除非 p 指向一个整数,并且 i 是一个偏移量。然而,通常更常见的是使用 p[i] 来代替 *(p+i)

例如,如果 p 是一个指向整数的指针,并且 i 是一个整数,那么 *p+i 将会先解引用 p 得到一个整数,然后加上 i。然而,更常见的写法是 p[i],这将直接访问 p 所指向的数组中的第 i 个元素。

总的来说,*(p+i) 和 *p+i 的主要区别在于前者是通过指针访问数组元素,而后者是先解引用指针然后进行加法运算。

posted @   刻黑  阅读(551)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示