请考虑以下代码:
#include <iostream>
using namespace std;
void test0(const int &a){
cout << "const int &a passed *ptra "<< a << endl;
}
void test1(const int &a){
cout << "const int &a passed ptra "<< a << endl;
}
void test2(const int &a){
cout << "const int &a passed *a "<< a << endl;
}
void test3(const int &a){
cout << "const int &a passed a "<< a << endl;
}
void test4(int *a){
cout << "int *a passed &a "<< *a << endl;
}
void test5(int *a){
cout << "int *a passed a "<< a << endl;
}
void test6(int *a){
cout << "int *a passed *a "<< a << endl;
}
int main(){
int a = 3;
int *ptra;
*ptra = 3;
test0(*ptra);
//test1(ptra);
//test2(*a);
test3(a);
test4(&a);
//test5(a);
//test6(*a);
//int &b = a;
}
传递a时(int&amp; a)如何成为引用? 它本质上是创建一个int a并将其地址设置为传递给它? 对于结果引用指向a的值的地址(如果a = 3指向地址3),如果你这样通过,那么它是否更有意义:
void stuff(int &a);
int *ptr;
stuff(ptr);
a将其地址设置为传递的值(ptr指向的地址); 指针与参考之间的区别是什么?
还有什么,如果你取消注释// int&amp; b = a 该程序停止输出任何东西。为什么呢?