C++之指针系列

指针定义:

指针是一个值为内存地址的变量(或数据对象)
内存地址==身份证号码——能够唯一标识该变量的身份
int* ptr_year;
int year=2023;
ptr_year=&year;//赋值——将year的地址给ptr_year
*ptr_year=year;//将year的值给ptr_year,ptr_year里面的值将为year,地址不变

int num=1024;
int* prt_num;
ptr_num=#//赋值——将num的地址给ptr_num,*代表取值
int num=1024;
int * ptr_num;
ptr_num=#
*ptr_num=1111;//直接改变num的值——num=111;

注:
&为取地址符;int *——整型指针;*——可以理解为指针
int *pre_year里面的值为地址
指针的执行效率比不上普通变量名的执行效率

    char ch ='a';
    char* ptr_ch =&ch;//ptr_ch会输出ch的值
    cout<<(void *)ptr_ch<<"\t"<<*ptr_ch<<endl;//强制转换为任意的数 

空指针

空指针不指向任何对象,在试图使用一个指针之前可以首先检查是否为空

用法

int *prt1=nullptr;//==int *ptr1=0;
int *prt2=0;//直接将prt2初始化为字面常量0
int *prt3=NULL;//==int *prt3=0;
int *prt4;//int *prt4这个会随机定义一个地址,很危险,为野指针,需要避免

注:最好初始化所有指针

一种特殊的指针类型,可以存放任意对象的地址

double objnum=2.14;
double *ptr_obj=&objnum;
void *vptr_obj=&objnum;//可以指向任意类型
cout <<(ptr_obj==vptr_obj)<<endl;
注:
void *指针存放一个内存地址,地址指向的内容是什么类型不能确定,无法直接修改值
void*类型指针一般用来:拿来和别的指针比较、作为函数的输入和输出:赋值给另一个void*指针

小结

注:

所有文章都是自己学习C++的笔记,内容来自老九学堂,如有侵权立删

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值