1.我们平时定义普通变量:
typename variable_name = variable_value;
语句申明了变量值得类型 变量名称 ,还让程序为值分配了内存
此处定义变量: 值是指定量 存储地址为派生量(指定一个要存储的值,分配一个自由空间用于存储这个值)
#include<iostream>
int main()
{
using namespace std;
// 定义一个简单的变量
int var1 = 12;
cout << var1 << endl;
return 0;
}
获取地址(使用地址运算符 &)
#include<iostream>
int main()
{
using namespace std;
// 定义简单的变量
int var1 = 12;
double var2 = 12.0;
// 输出变量值与地址
cout << "var1 value = " << var1;
cout << " var1 address = " << &var1 << endl;
cout << "var2 value = " << var2;
cout << " var2 address = " << &var2 << endl;
return 0;
}
输出:

2.指针
指针是一个特殊的变量,存储的值是地址,而不是值本身;
typename* ptr_name = variable_address;
此处定义变量: 地址是指定量 值为派生量(指定一个要存储的值,分配一个自由空间用于存储这个值)
指针用于存储值的地址,所以指针名表示的是地址;用解除引用运算符(*) 来获得的该地址处的值。
#include<iostream>
#include<stdlib.h>
int main()
{
using namespace std;
int var1 = 12; //定义简单变量
int* ptr_var1 = &var1; //定义指针
// 输出简单变量值与地址
cout << "var1 value = " << var1 << endl;
cout << "var1 address = " << &var1 << endl << endl;
// 输出var1的指针的值与指向地址存储的值
cout << "ptr_var1 value = " << ptr_var1 << endl;
cout << "*ptr_var1 value = " << *ptr_var1 << endl << endl;
// 改变指针指向变量的值 输出结果
*ptr_var1 = *ptr_var1 + 1;
cout << "after change ptr_var1 value = " << ptr_var1 << endl;
cout << "after change *ptr_var1 value = " << *ptr_var1 << endl << endl;
system("pause");
return 0;
}
结果:

示意图: