c - 指针运算

标签 c pointers pointer-arithmetic

有人对指针算术有什么好的文章或解释(博客、示例)吗?图中观众是一群学习C和C++的Java程序员。

最佳答案

这是我学习指针的地方:https://cplusplus.com/doc/tutorial/pointers/

一旦理解了指针,指针算术就很容易了。它与常规算术之间的唯一区别是,添加到指针的数字将乘以指针指向的类型的大小。例如,如果您有一个指向 int 的指针,并且 int 的大小为 4 个字节,则 (pointer_to_int + 4) 将计算为前面 16 个字节(4 个整数)的内存地址。

所以当你写

(a_pointer + a_number)

在指针算术中,真正发生的是

(a_pointer + (a_number * sizeof(*a_pointer)))

在常规算术中。

关于c - 指针运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36653200/

相关文章:

objective-c - 指针和循环

c - 使用依赖结构中值的函数更新结构值

c - 打印链表时,为什么原来的头指针没有变

c - 为什么指针算术可用于非连续的2d数组?

C++ 查找文件中的所有指针算法

c - 尝试删除 malloc 的使用 - 这里有替代方案吗?

计数预处理器宏

c - 不要在 Struct 中初始化整型数组

c - 为什么此代码会在 "temp[2]=' X' 处崩溃?

c - 理解这个 C 数组语法 - 3[arr]