Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否'*(&;x)和#x27;比'做更多的工作;x';_C++ - Fatal编程技术网

C++ 是否'*(&;x)和#x27;比'做更多的工作;x';

C++ 是否'*(&;x)和#x27;比'做更多的工作;x';,c++,C++,在我的代码中写入此*(&x)与x有什么不同吗?或者编译器使它们成为相同的东西吗?GCC至少似乎为*(&x)和x生成了相同的指令,只要假设x是什么类型,都不会重载&和*操作符。GCC至少似乎为这两个生成了相同的指令*(&x)和x假设x的任何类型都不会使&和*运算符过载。这当然对可读性没有帮助 只要没有运算符重载,几乎可以肯定编译器会为这两个对象生成相同的代码。编译到汇编(-s在gcc中),自己查看。这当然对可读性没有帮助 只要没有运算符重载,几乎可以肯定编译器会为这两个编译器生成相同的代码。编译到

在我的代码中写入此
*(&x)
x
有什么不同吗?或者编译器使它们成为相同的东西吗?

GCC至少似乎为
*(&x)
x生成了相同的指令,只要假设
x
是什么类型,都不会重载
&
*
操作符。

GCC至少似乎为这两个
生成了相同的指令*(&x)
x
假设
x
的任何类型都不会使
&
*
运算符过载。

这当然对可读性没有帮助


只要没有运算符重载,几乎可以肯定编译器会为这两个对象生成相同的代码。编译到汇编(
-s
gcc
中),自己查看。

这当然对可读性没有帮助

只要没有运算符重载,几乎可以肯定编译器会为这两个编译器生成相同的代码。编译到汇编(
-s
gcc
中),自己看看

在我的代码中写这个*(&x)与写x有什么不同吗

如果
*
或/和
&
是重载运算符,则它们可能意味着不同的事情,否则
*(&x)
x
意味着相同的事情,在这种情况下,它会降低可读性,因此您不想编写它。请参阅类似主题:

希望有帮助

在我的代码中写这个*(&x)与写x有什么不同吗

如果
*
或/和
&
是重载运算符,则它们可能意味着不同的事情,否则
*(&x)
x
意味着相同的事情,在这种情况下,它会降低可读性,因此您不想编写它。请参阅类似主题:


希望有帮助。

如何检查编译器生成的指令?您可以使用GCC的
-S
标志,也有一些网站可以这样做,比如如何检查编译器生成的指令?您可以使用GCC的
-S
标志,也有一些网站可以这样做什么是<代码> x <代码>?不知道你的问题没有任何意义。@ DDRMMR <代码> X <代码>只是一个变量……C中的我们有以下的标准,据我所知,我们在C++中不等价词。什么是<代码> x < /代码>?不知道你的问题没有任何意义。@ DDRMMR <代码> X/COD>只是一个在C中,我们在标准中有以下的措辞,据我所知,我们在C++中没有等价的措辞。