#include <iostream> using namespace std; int& test_str() { int a = 1; return a; //通过返回 a 的地址来进行 值的返回(即 a的地址中所储存的值) } int ff(int t) //返回的就是个数 a 的值,a属于局部变量,函数调用完后内存自动释放,地址也就不存在 //所以运行 &ff(b) 会报错 :“&”要求左值 ,即没有地址可以取 { static int a = 3; return a; } int& fun(int &a) { cout <<"aa "<< &a << endl; return a; } int main() { /*int *p= &test_str(); cout << *p << endl; cout << *p << endl;*/ int b ; cout <<"b: "<< &b << endl; b = 4; cout << "fun :" << &fun(b) << endl; int a; cout <<"a:"<< &a << endl; a= fun(b); //把 fun(b) 地址中储存的值 赋值 给 a ,因此 a 的地址没有发生改变 cout <<"a :"<< &a << endl; /*int b = 1; cout << "b :" << &b << endl; int *p = new int; *p = ff(b);*/ //cout << "ff :" << &ff(b) << endl; return 0; }
函数名前加 & 符号的深入理解 C++
猜你喜欢
转载自www.cnblogs.com/zby-yao/p/10072161.html
今日推荐
周排行