当前位置: 首页 > article >正文

C++(二十一)

前言:

本文承接上文,将详细讲解指针概念。

一,通过指针了解变量的数值。

在将变量地址存入指针后,从指针反推也可以知道原变量的值,若想进行反退,就需要使用间接引用运算符:*。

语法:

*指针名;

使用该运算符,就可以知道指针中存储地址对应的变量的值。

例如:

# include <iostream>
using namespace std;
# include <iostream>
using namespace std;

int main(){
    int a = 5;
    int *pA = &a;
    cout << "变量a的值是:"<<a << endl;
    cout << "变量a的地址是:"<<&a << endl;
    cout << "指针pA的值是:"<< pA<< endl;
    cout << "指针pA指向的值是:"<< *pA<< endl;
    return 0;
}

运行结果如下:

简而言之,可以通过间接引用运算符*,得到指针所指向变量的值。

二,知识点总结。

结合上一篇文章的知识点,可以得出以下结论:

a;//定义变量a。
&a;//变量a的地址
pA;//存储变量a地址的指针pA
*pA;//存储变量a地址的指针(pA)的所指向变量——a的值

在同时声明多个指针时,可以使用如下方式编写:

 int *pA;
 int *pB;
 int *pC;
int *pA , *pB, *pC;

三,在指针中代入其他地址。

指针就是存储地址的变量,因为C++代码时逐行运行的,因此可以将统一指针多次赋值。

例如:

# include <iostream>
using namespace std;

int main(){
    int a, b;//定义两个变量
    int *pA ;//定义一个指针变量
    a = 10;//给变量a赋值
    b = 20;//给变量b赋值
    pA = &a;//将变量a的地址赋值给指针pA
    cout << "变量a的值是:"<<a << endl;//输出变量a的值
    cout << "变量a的地址是:"<<&a << endl;//输出变量a的地址
    cout << "指针pA的值是:"<< pA<< endl;//输出指针pA的值
    cout << "指针pA指向的值是:"<< *pA<< endl;//输出指针pA指向的值
    pA = &b;//将变量b的地址赋值给指针pA
    cout << "变量b的值是:"<<b<< endl;//输出变量b的值——变量b的值
    cout << "变量b的地址是:"<<&b<< endl;//输出变量b的地址——变量b的地址
    cout << "指针pA的值是:"<< pA<< endl;//输出指针pA的值——变量b的地址
    cout << "指针pA指向的值是:"<< *pA<< endl;//输出指针pA指向的值——变量b的值
    return 0;
}

运行结果为:

在指针中带入其他变量地址能够改变指针值。

四,使用指针改变变量。

在上文中,可以知道,*pA的值就是变量的值,可以通过更改*pA的值来改变。

例如:

# include <iostream>
using namespace std;

int main(){
    int a;//定义变量a
    int*pA;//定义指针pA
    a=2;//赋值
    pA=&a;//将a的地址赋给指针pA
    cout<<*pA<<endl;//输出指针pA所指向的值
    *pA=3;//通过指针pA修改a的值
    cout<<a<<endl;//输出a的值
 return 0;
}

运行结果为:


http://www.kler.cn/a/508151.html

相关文章:

  • 基础入门-反弹Shell渗透命令Reverse反向Bind正向利用语言文件下载多姿势
  • AI在SEO中的关键词优化策略探讨
  • 【从0带做】基于Springboot3+Vue3的心理健康预约平台
  • LabVIEW实车四轮轮速信号再现系统
  • 生成订单号工具类
  • Linux的常用命令(三)
  • DNS服务学习
  • 基于微信小程序教学辅助系统设计与实现(LW+源码+讲解)
  • ChatGPT升级AI私人助理功能:新增定时播报全网热点与定制每日学习健身计划
  • Spring Boot中Tomcat配置
  • AF3 TriangleMultiplicativeUpdate类代码解读
  • CVPR 2024 图像处理方向总汇(图像去噪、图像增强、图像分割和图像恢复等)
  • ChatGPT结合Excel辅助学术数据分析详细步骤分享!
  • 洛谷 P2392 kkksc03考前临时抱佛脚 刷题笔记 dfs
  • 先进制造aps专题二十七 西门子opcenter aps架构分析
  • 考研数据结构线性表之顺序表
  • Azure Synapse Dedicated SQL Pool通过配置选项和参数优化性能
  • python http server运行Angular 单页面路由时重定向,解决404问题
  • LeetCode 3097.或值至少为 K 的最短子数组 II:滑动窗口
  • 3.数据库系统
  • 面试题解析
  • 电子应用设计方案93:智能AI电火锅系统设计
  • MS5263数模转换器可兼容AD5663/DAC8552
  • 芝麻http/品易http/太阳http/极光http退市后,还有哪家好用推荐?
  • 嵌入式驱动开发详解12(LCD驱动)
  • 我在讯方智汇云校备考云计算HCIE的经验分享