C++学习之指针的使用详解
更新时间:2023年03月02日 08:58:47 作者:NDX2004
这篇文章主要为大家详细介绍了C++中指针的相关知识,文中的示例代码讲解详细,对我们的学习或工作有一定的价值,感兴趣的小伙伴可以了解一下
C++中指针储存一个地址
声明:
datatype* p; datatype表示指针指向的数据类型。
int num=0; int* pnum=# //&是地址运算符,&num表示num这个变量存储的地址 //int*声明了pnum是一个指针变量
解引用符号 *:
int num=1024; int* pnum=# cout<<*pnum<<endl;//结果是num的值:1024
指针的运算:
int num=1024; int* pnum=# //地址后移: //cout<<*pnum<<endl; cout<<pnum<<" "; pnum=pnum+sizeof(int); cout<<pnum;//输出 0x61ff08 0x61ff18
改变变量num:
int num=1024; int* pnum=# //变量num的改变 (*pnum)++;//此时num的值变为1025,注意:不加括号可能出错。
几种指针:
常量指针:声明之后不可更改(指向一个不变的内存位置,但该位置存储的内容可以改变)
声明常量指针时数据类型在前,并且声明和初始化必须在同一行
数组名就是常量指针。
//正确声明常量指针: int num=1024; int* const pnum=# //错误声明: const int* pnum=#//指针不是常量,但是不能通过该指针改变该数据。 num=64;//no problem,可以改变变量值 *pnum=100;//wrong
指针函数:
1.指针作为参数
void change(int* p) { (*p)++; } int main() { int num=1024; int* pnum=# change(pnum); cout<<num;//输出1025 return 0; }
2.指针作为返回结果
int* change(int* p) { p=p+1;//指针向后移动 //指针p为常量指针 p+1的结果更像是指向下一个数组元素 return p; } int main() { int list1[3]={1,2,3}; int* plist1=list1; plist1=change(plist1); cout<<*plist1<<endl;//输出2 return 0; }
3.this指针:访问其他数据域的参数。
Circle::Circle() { double r=1; } Circle::Circle(double r) { this->r=r;//调用上一个作用域的r }
到此这篇关于C++学习之指针的使用详解的文章就介绍到这了,更多相关C++指针内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
C语言内存函数 memcpy,memmove ,memcmp
这篇文章主要介绍了C语言内存函数 memcpy,memmove ,memcmp,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下2022-09-09C++示例讲解friend static const关键字的用法
静态成员static是解决同一个类的不同对象之间数据和函数共享问题。区分全局变量,全局变量也能实现数据共享,但安全性和封装性被破坏了,友元提供了不同类或对象的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制,const常引用-被引用的对象不能被更新2022-06-06
最新评论