c - C、C++中的指针

标签 c pointers

这两个是等价的吗?

int a=10;
int *p=a; 

AND

int a=10;
int *p;
p=&a;

在这两种情况下,p 是否都包含 a 的地址!?

最佳答案

第一种情况,a的值被复制到p中(存放地址),所以p指向地址10.

在第二种情况下,p指向a的地址。

还有第三种情况:

int a = 10;
int *p = malloc(sizeof(int));
*p = 10;

在这种情况下,a的值被复制到p指向的地址(由malloc()保留)

关于c - C、C++中的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12204124/

相关文章:

c - 程序收到信号 : “EXC_BAD_ACCESS” ?

c - 'timespec' 结构的 Visual Studio 错误

python - 为什么在通过 Python 的 C API 调用 pyplot.draw() 时重新播种 rand()?

c - 内联汇编,进入中断

c++ - 为什么 move 指针变量不会将其设置为空?

c - 自由(): invalid next size (fast) - Freeing a struct of string array in c

pointers - Golang 处理 nil 指针异常

c - 在c中交换两个结构

C++ 传递临时堆栈对象作为对函数的引用

c - 如果 arr 是 T 型数组,那么 &arr 的用途是什么?