1.指针基本概念:
指针作用:可以通过指针间接访问内存,内存编号是从0开始的,一般用十六进制数组表示 可以理解为:指针就是地址,可以利用指针变量保存地址,指针的目的就是来记录地址编号.
2.指针所占内存空间
在32位操作系统下,指针是占4个字节空间大小,不管是什么数据类型
在64位操作系统下,指针是占8个字节空间大小,不管是什么数据类型 因此,在正常使用指针的情况下可以节省很多内存
3.指针变量的定义和使用
1.定义
指针变量定义语法:数据类型*变名;
int a = 10;
//指针定义的语法:数据类型*指针变量名;
int* p;//一般定义的指针都用p,单词翻译就是指针
//让指针记录变量a的地址
p = &a;//&是取址符号
cout << "a的地址为" << &a << endl;
cout << "指针p为" << p << endl;//注意,这里p打印的是地址
2.使用指针
//可以通过解引用的方式来找到指针指向的内存
//指针前加*代表解引用,找到指针指向的内存中的数据
*p = 1000;
cout << "a=" << a << endl;
cout << "*p=" << *p<< endl;//解出来的就是a地址的值
//指针可以间接的访问内容并读和写
//注:
int*p;
p=&a;
//可以直接写成:
int * p=&a;
4.空指针和野指针
1.空指针:指针变量指向内存中编号为0的空间
用途:初始化指针变量 例子:int*p=NULL;
注意:空指针指向的内存是不可访问的(0-255之间的内存编号是系统占用的,不可访问)
2.野指针:指针变量指向非法的内存空间
在程序中,尽量避免出现野指针,会报错,因为无权访问
例子: int*p=(int*)0x1100