【发布时间】:2020-06-07 08:14:57
【问题描述】:
这些声明有什么区别?
以下哪一项是正确的,为什么该方法是正确的?
int val;
int *ptr = val; // first method
int *ptr_2 = &val; // second method
【问题讨论】:
-
int *ptr = val;需要您的编译器进行诊断。如果您的编译器没有报错,我建议您停止使用该编译器并选择更好的编译器。 -
编译器发送一个转换错误@pmg
-
啊!好漂亮的编译器 :) 始终注意编译器诊断!
-
如果您在嵌入式系统上,在独立环境中,在裸机上工作,...,(您碰巧知道可以使用
int来存储地址) 你可以正确安全地使用第一个选项和演员:int address = 0xDEADBEEF /* bare metal */; int *ptr = (int*)address;
标签: c pointers variable-assignment