*(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
的主要区别在于前者是通过指针访问数组元素,而后者是先解引用指针然后进行加法运算。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!