文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C++学习之指针的使用详解

2023-03-02 20:50

关注

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=&num;
 
//地址后移:
    //cout<<*pnum<<endl;
    cout<<pnum<<" ";
    pnum=pnum+sizeof(int);
    cout<<pnum;//输出 0x61ff08 0x61ff18

改变变量num:

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

几种指针:

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

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

数组名就是常量指针。

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

指针函数:

1.指针作为参数

void change(int* p)
{
    (*p)++;
}
int main()
{
    int num=1024;
    int* pnum=&num;
    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++指针内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯