正如标题所说,
一个典型的答案是:
允许任何和所有代码转换不会改变程序的可观察行为的规则
我们会不时地从某些实现中获取行为,这些行为归因于此规则.好多次错了.那么,这个规则究竟是什么呢.标准没有明确地将此规则作为一个部分或段落提及,那么究竟什么属于这条规则的范围?对我来说,这似乎是一个灰色区域,标准没有详细定义.有人可以根据标准的参考资料详细说明细节.
注意:将其标记为C和C++,因为它与两种语言都相关.
我想知道文字常量实际存储在内存中的哪个位置?
例:
int i = 5;
char* data = char* &("abcdefgh");
Run Code Online (Sandbox Code Playgroud)
存储部分i和data取决于它们的声明位置.但编译器是否存储5并"abcdefgh"在将其实际复制到变量之前?
在这里我可以得到"abcdefgh"它存储位置的地址,但为什么我不能得到它的地址5?