ISO/IEC 9899:2011 的 § 6.3.2.1:2,即“ISO C11 标准”,说:



但是,解除引用的指针不也是一个左值,就像指针本身一样吗?例如。 int *ptr; ptr = malloc(…); *ptr = 1
那么为什么没有提到 * 运算符——或者我在这里混淆了什么?

最佳答案

您缺少第 6.5.3.2p4 节,该节讨论了间接运算符 * 的语义:



运算符本身被定义为产生一个左值。

关于c - ISO C11 标准中的左值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54621080/

10-12 14:49
查看更多