gpt4 book ai didi

c++ - 铸件内的符号

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:50:31 29 4
gpt4 key购买 nike

我遇到了这段代码

int n1 = 10;
int n2 = (int &)n1;

我不明白这个转换的含义,n2 不是引用,因为修改 n1 不会反射(reflect) n1。奇怪的是,这段代码在 gcc 中抛出编译器错误,而在 VC++ 中编译正常。

有人知道这个转换的含义吗?

最佳答案

这是完全有效的 C++ 代码,并且可以使用 g++ 4.4.1 进行编译。它创建一个对 n1 的临时引用,然后使用该引用引用的值来初始化 n2。

如果将其表示为函数,可能更容易理解:

void f( int & n1 ) {
int n2 = n1; // initialise with valuue referred to by n1
}

请注意,这不是有效的 C 代码,因为 C 不支持引用。

关于c++ - 铸件内的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1952471/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com