指针
指针的定义:数据类型 * 指针的变量名
#include<iostream>
using namespace std;
int main()
{
//定义指针:数据类型 * 指针变量名
int a = 10;
int *p;
//指针指向变量a的地址
p = &a;
cout<<"a的地址为:"<<&a<<endl;
cout<<"p的值为:"<<p<<endl;
//可以通过解引用的方式来找到指针指向;内存中的数据;
cout<<*p<<endl;
}
指针所站的内存空间:
在32位的操作系统下:占4个字节
在64位的操作系统下:占8个字节count
cout<<sizeof(int *)<<endl;
空指针:
指针变量指向内存中编号为0的内存空间
0-255之间的内存编号是系统占用的,因此不可以访问的
-
初始化我们的变量
//空指针 int *p1 = NULL; *p1 = 1000; cout<<*p1<<endl;//这是会报错的
野指针:
空指针指向的内存是非法的空间(不是我申请的空间)
const 修饰指针:
- const修饰指针:常量指针
常量指针指向可以改,指针指向的值不可以修改
可以操作p,但是不可以操作*p
int a = 10;
int b = 20;
const int *p = &a;
p = &b;//True
*p = 30;//false
- const修饰常量:(指针常量)
指针常量,指针的只想不可以改,指针指向的值可以改;
可以操作*p,但不可以操作p
const int * const p = &a;
p = &b;//false
*p= 20;//ture
- const修饰指针和常量:
const int * const p = &a;
//特点,即不可以修改指向,也不可以修改指针指向内存的值。