星号 *
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; }