我是初学者,我在编程中发现了术语指针的几种定义。我想知道哪一个是正确的(也许两个都是)?
a - 指针是保存内存地址的变量。鉴于此定义,在以下代码 char *msg;
中,我们可以说变量 msg
是指向 char
的指针。
b - 指针是内存中数据的地址。鉴于此定义,函数 malloc
返回的值 0x01020304
是一个指针。
最佳答案
在一行中,我可以说指针是内存地址。变量它包含另一个变量在内存中的地址。
- 一元或一元运算符 & 给出变量的地址。
- 间接或取消引用运算符 * 给出“指针指向的对象的内容”。
关于指针的简要信息:
int foo;
int *foo_ptr = &foo;
第 1 行:这个变量占用了一些内存。在目前主流的英特尔处理器上,它占用了一些(例如:4字节的内存(因为一个int是四个字节宽)。
第 2 行:foo_ptr 被声明为指向 int 的指针。我们已将其初始化为指向 foo。
我尝试将每个变量可视化为一个框。 foo
是一个大小为 sizeof(int)
字节的框。这个盒子的位置就是它的地址。当您访问该地址时,您实际上访问了它所指向的框中的内容。
关于c - 术语 : what's a pointer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43615221/