星号 *
1. 声明的时候有*, 表示指针变量
int *p=&a;// '&'的作用就是把a变量在内存中的地址给提取出来
2. * +地址, 表示地址操作符
3. 数字*数字, 表示乘法
4. 解引用 (寻找指针所指的地址里面的内容)
*p=5;//这就是解引用,*解释了 p对常量的内存地址的引用,解释结果就是直接去寻找p所指内容,因为p指向a,所以a的内容将被修改,而不是原来的常量值。
#include <iostream>
using namespace std;
int main()
{
//1.在声明变量的时候* 指针变量
int a = 12;
int *p = &a;
*p; //2.地址操作符 读和写
cout << *p << endl; //读取
*p = 123; //写入
int b = 12;
int c = 12 * 23 * b; //3.数字*数字 表示乘法
//内存操作, 读 写 取地址&
system("pause");
return 0;
}
引用 &
1. 按位与 (二进制运算)
2. 取地址
3. 声明一个引用
引用 做函数参数
#include <iostream>
using namespace std;
//引用做参数
void fun(int& a)
{
cout << a << endl;
}
int main()
{
int b = 12;
fun(b);
system("pause");
return 0;
}
结合星号* 引用&
#include <iostream>
using namespace std;
//引用做参数
int main()
{
int i = 1024;
int *p = &i; // p指针指向i
int **p2 = &p; // p2指针指向p指针
cout << " i: " << i << " p: " << p << " p2: " << p2 << endl; // 分别打印 原始对象, 指针, 指针的指针
cout << " *p: " << *p << " **p2: " << **p2 << endl; // *p 解引用, **p2 两次解引用
system("pause");
return 0;
}