指针的含义
指针是一个其值为地址的变量。(就是一个存储地址的变量)
(指针变量所存的内容就是内存的地址编号 !)
所以,要养成一种条件反射,看到指针首先不是想到他能够指向哪里,而是想到这个变量存放的是一个地址,是这个地址指向哪里哪里.(比如,char类型的变量中存放的是char类型的数据.int变量中存放的是int类型的数据.指针中存放的是一个地址!!!)
- &(取址运算符)
- *(间接访问运算符/解引用指针)
#include <iostream>
using namespace std;
int main()
{
int a=5;
double b=10.4;
cout<<"Address of a:"<<&a<<endl;
cout<<"Address of b:"<<&b<<endl;
cout<<"a:"<<*(&a)<<endl;
}
声明指针的模板:
指向地址的数据类型 * 指针变量名;
int * leo;
指针数组
-
指针的数组(注意:【】优先级比较高)
数组T* t[];eg:int * a[4] -
数组的指针
指针T (*t)[]eg :int (*b)[4]
const与指针
关于const修饰的部分: 1、看左侧最近的部分 2、如果左侧没有 则看右侧
char strHello[] = {"hello"};
char const *pStr1 = "hello";
char *const pStr2="hello";
char const *const pStr3 = "hello";
pStr1=strHello;
//pStr2=strHello; pStr2是不可改变的
- 指向const的指针:const修饰char,pStr1 这个地址可以随便指,但是地址里面保存的值却是不能改变。
- const 指针 const修饰*, 首先是一个指针,只不过这个指针是 const 类型的,也就是这个指针变量的地址,只能在初始化之后,就一直指向这个地址,地址所被保存的内容是可变的。