C++指针,函数,引用
C++自学笔记指针:
&————————取地址符
*————————取地址对应的值符
.————————一个类的对象访问该类的属性
->——————— 一个类的指针调用该类的属性
class A { public: int a = 0; }; int main() { A b; A *p = &b; b.a; //类类型的对象访问类的成员 p->a; //类类型的指针访问类的成员 }
一般创建一个指针时,可以先创建一个空指针,这样指针就有了固定的地址。 如:char *pname = NULL;
有一个class:Phone(手机),该类有一个成员函数SendMessage()用于发短消息,通常你要调用这个函数,
可以先定义一个Phone类的指针*phone,利用这个指针就可以调用该函数了:
Phone *phone;
phone->SendMessage();
1.值传递:普通函数(带输入输出参数,变量)在值的传递时,形参不能改变实参的值。
2.地址传递:若传递变量为指针,这种情况下,实参的值会被指针改变。
3.引用函数为地址传递。(引用的实质是指针常量,初始化以后不能改变)
#includeusing namespace std; void swap01(int a0, int b0) //值传递 { int temp = a0; a0 = b0; b0 = temp; cout << "a0=" << a0 << endl; cout << "b0=" << b0 << endl; } //指针初始化格式:int *p; p=&a ; //简写: int *p = a;(*解引用后得到a的值(指向a的地址)) void swap02(int*p1, int*p2)//通过指针,地址传递 { int temp = *p1; *p1 = *p2; *p2 = temp; } //引用初始化格式:int &a = b; (a是b地址内容的别名) void swap03(int &a ,int &b) //通过引用,地址传递 { int temp = a; a = b; b = temp; } int main() { int a = 10; int b = 20; int c = 30; int d = 40; int e = 50; int f = 60; swap01(a, b); //值传递,形参的修改不能改变实参的值。 cout << "a=" << a << endl; cout << "b=" << b << endl; swap02(&c, &d); //地址传递,指针改变实参的值。 cout << "c=" << c << endl; cout << "d=" << d << endl; swap03(e, f); //引用传递,引用地址修改实参的值。 cout << "e=" << e << endl; cout << "f=" << f << endl; system("pause"); return 0; }