C++的指针如何使用

其他教程   发布日期:2023年07月24日   浏览次数:381

今天小编给大家分享一下C++的指针如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

C++中指针储存一个地址

声明:

datatype* p; datatype表示指针指向的数据类型。

  1. int num=0;
  2. int* pnum=#
  3. //&是地址运算符,&num表示num这个变量存储的地址
  4. //int*声明了pnum是一个指针变量

解引用符号 *:

  1. int num=1024;
  2. int* pnum=#
  3. cout<<*pnum<<endl;//结果是num的值:1024

指针的运算:

  1. int num=1024;
  2. int* pnum=&num;
  3. //地址后移:
  4. //cout<<*pnum<<endl;
  5. cout<<pnum<<" ";
  6. pnum=pnum+sizeof(int);
  7. cout<<pnum;//输出 0x61ff08 0x61ff18

改变变量num:

  1. int num=1024;
  2. int* pnum=&num;
  3. //变量num的改变
  4. (*pnum)++;//此时num的值变为1025,注意:不加括号可能出错。

几种指针:

常量指针:声明之后不可更改(指向一个不变的内存位置,但该位置存储的内容可以改变)

声明常量指针时数据类型在前,并且声明和初始化必须在同一行

数组名就是常量指针。

  1. //正确声明常量指针:
  2. int num=1024;
  3. int* const pnum=&num;
  4. //错误声明:
  5. const int* pnum=&num;//指针不是常量,但是不能通过该指针改变该数据。
  6. num=64;//no problem,可以改变变量值
  7. *pnum=100;//wrong

指针函数:

1.指针作为参数

  1. void change(int* p)
  2. {
  3. (*p)++;
  4. }
  5. int main()
  6. {
  7. int num=1024;
  8. int* pnum=&num;
  9. change(pnum);
  10. cout<<num;//输出1025
  11. return 0;
  12. }

2.指针作为返回结果

  1. int* change(int* p)
  2. {
  3. p=p+1;//指针向后移动
  4. //指针p为常量指针 p+1的结果更像是指向下一个数组元素
  5. return p;
  6. }
  7. int main()
  8. {
  9. int list1[3]={1,2,3};
  10. int* plist1=list1;
  11. plist1=change(plist1);
  12. cout<<*plist1<<endl;//输出2
  13. return 0;
  14. }

3.this指针:访问其他数据域的参数。

  1. Circle::Circle()
  2. {
  3. double r=1;
  4. }
  5. Circle::Circle(double r)
  6. {
  7. this->r=r;//调用上一个作用域的r
  8. }

以上就是C++的指针如何使用的详细内容,更多关于C++的指针如何使用的资料请关注九品源码其它相关文章!