c - 理解应用于文字时 C 指针转换的语义

标签 c pointers literals

是否有任何文档说明在 C 中应用于文字的指针转换的含义?

例如:

int *my_pointer = (int *) 9 

这是编译器相关的还是标准的一部分?

编辑:根据下面的评论删除了误导性注释,谢谢。

最佳答案

int *my_pointer = (int *) 9 

这并不指向文字 9。它将文字 9 转换为指向 int 的指针。 C 表示从整数到指针类型的转换是实现定义的。

int *my_pointer = &(int) {9};

确实如此。它使 my_pointer 指向值为 9int 对象。

关于c - 理解应用于文字时 C 指针转换的语义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16119289/

相关文章:

arrays - Delphi如何解析带有指针(无类型)参数的重载函数?

java - 比较两个字符串文字

c++ - "2.00"和 "2.00f"之间是否存在功能差异?

lisp - 这是 sbcl 中的错误?

c - 什么是 int (*fp)()

c++ - 错误 C2078 : too many initializers

php - C中的多线程程序 : calculating thread stack space

c - 使用整数类型说明符打印 float

c# - 解释这个 C# 代码 : byte* p = (byte*) (void*) Scan0;

c - 星号和函数名之间的空格