基本原则:指针类型变量存储的就是地址!
1.数组名就是数组首元素的地址**数组
int age[3]; int* p = age;
2.使用new操做符其实是向操做系统申请一块内存(包含类型信息),返回的就是该块内存的地址。咱们要引用他,就要指针指向这段内存的地址。函数
int* p1 = new int(10);//该int的值为10 Student* p3 = new Student;//其中Student是结构体
3.->
操做符,专门用于操做指针指向对象(结构体,对象)的成员
p3->age = 13;
4.操做符能够操做指针指向的地址操作系统
(*p3).age = 13 int sum = 0; int* p5 = ∑ *p5 = 1; cout << *p5;
5.&
操做符,专门用于取地址指针
Student s1;//Student是结构体 s1.name = "123"; s1.age = 13; Student* p3 = new Student; Student* p4 = &s1;
总之:
当你看到了指针,你就要想到地址,就要想到*,想到取地址操做符&,想到->,指针是有类型的。注意:C++中的引用类型参数(&),和取地址操做符&是不同的。code
6.函数的指针:使用前面的原则来理解,函数指针是一个什么样的存在呢?对象
int add(int x, int y) { return x + y; } int(*addptr)(int, int); addptr = add; cout << (*addptr)(10, 20) << endl;//提问:这里为何要用*