据我所知,&被称为“参考运算符”,意思是“地址”。因此,它的作用是将地址存储在任何变量中。例如,'a =& b;'。但我知道另一个意思是'参考'。如您所知,引用是变量的别名。所以,在我的结果中,&根据位置有两个含义。如果'a =& b;',&表示'b'的地址。如果'int& a = b;',&意思是“另一个变量的别名”。
据我所知,*被称为'解除引用运算符'。但它就像&,它根据位置有两个含义。如果'int * a =& b',*表示'指针变量'。如果'a = * b',*表示'取消引用变量'。
他们是对的????
P.S。我是foriegner。所以我的英语很差。对不起......我的英语很差。
答案 0 :(得分:0)
您好我明白您对指针和参考的概念感到困惑。让我试着为你分解一下:
当我们在变量声明中使用其中任何一个时,请将其视为指定该变量的数据类型。
例如,
int *a;
创建一个指针变量'a',它可以保存(换句话说,指向)另一个整数变量的地址。
类似地int & a = b;
创建一个引用变量'a',它引用b(换句话说'a'只是整数b的别名)。
现在它看起来可能相同,事实上它们都提供相似的功能,但这里有一些差异:
指针有为其分配的内存,用于保存它指向的另一个变量的地址,而引用实际上并不存储它们引用的变量的地址。
另一个区别是指针在声明时不需要初始化,但是在声明时必须初始化引用,否则会引发错误。即; int * a;
可以,而int & a;
会抛出错误。
现在对于运算符,尝试看看它们与指针或引用没有关联(尽管我们最常使用它们)。
引用运算符(&)只返回其操作数变量的地址。而解除引用运算符(*)只是假设其参数的值是一个地址,并返回存储在该地址的值。
希望这对你有所帮助。这里有一些有用的参考资料(没有双关语):
https://www.ntu.edu.sg/home/ehchua/programming/cpp/cp4_PointerReference.html