基本原则:指针类型变量存储的就是地址!
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++中的引用类型参数(&),和取地址操作符&是不一样的。
6.函数的指针:使用前面的原则来理解,函数指针是一个什么样的存在呢?
int add(int x, int y)
{
return x + y;
}
int(*addptr)(int, int);
addptr = add;
cout << (*addptr)(10, 20) << endl;//提问:这里为什么要用*