c - 指针运算

标签 c pointers pointer-arithmetic

<分区>

有没有人对指针运算有任何好的文章或解释(博客、示例)?假设观众是一群学习 C 和 C++ 的 Java 程序员。

最佳答案

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

一旦理解了指针,指针运算就很容易了。它与常规算术之间的唯一区别是您添加到指针的数字将乘以指针指向的类型的大小。例如,如果您有一个指向 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/394767/

相关文章:

c - 从c中的文本文件初始化结构

c - pthread相同ID并输出self_t

使用双矩阵变量将 char 转换为 char[1]

c - GCC 中的 void 指针算法是如何发生的

c - 使用数组和指针算法闪烁 LED

c++ - 将 'const char *' 传递给类型为 'char *' 的参数会丢弃限定符

c - 在 C 中将 char 数组作为函数参数传递

c++ - object* foo(bar) 是做什么的?

c++ - 指向结构的动态指针数组在成员变量赋值时抛出 SIGSEGV

c - 如何用斐波那契数列动态填充数组