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

【时时三省】(C语言基础)怎样引用指针变量

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

在引用指针变量时,可能有3种情况:

( 1 )给指针变量赋值。如:

p = &a;

指针变量p的值是变量a的地址,p指向a。

( 2 )引用指针变量指向的变量。

如果已执行" p = & a ;”,即指针变量p指向了整型变量a .,则

printf ( " % d”,* p );

其作用是以整数形式输出指针变量p所指向的变量的值,即变量a的值。

如果有以下赋值语句:

* p = 1;

表示将整数1赋给p当前所指向的变量,如果p指向变量a,则相当于把1赋给a,即“a = 1;”。

( 3 )引用指针变量的值。如:

printf ( " % o”, p );

作用是以八进制数形式输出指针变量p的值,如果p指向了a,就是输出了a的地址,即& a。

运算符

( 1 ) &取地址运算符。& a是变量a的地址。

( 2 ) * 指针运算符(或称“间接访问”运算符),* p代表指针变量p指向的对象。下面是一个指针变量应用的例子。

例题:

输入a和b两个整数,按先大后小的顺序输出a和b。

解题思路:

用指针方法来处理这个问题。不交换整型变量的值,而是交换两个指针变量的值。

编写程序:

运行结果: 

程序分析:

输入a = 5,b = 9,由于a < b,将p1和p2交换。

注意:a和b的值并未交换,它们仍保持原值,但p1和p2的值改变了。pl的值原& a,后来变成& b,p2原值为&b,后来变成&a。这样在输出*pl和*p2时,实际上是输出变量b和a的值,所以先输出9,然后输出5。

if语句里面的内容可以改为

p1=b;

p2=a;

即直接对pl和p2赋以新值,这样可以不必定义中间变量p,使程序更加简练。

这个问题的算法是不交换整型变量的值,而是交换两个指针变量的值(即a和b的地址)。

 

http://www.dtcms.com/a/270282.html

相关文章:

  • 免安装图片修改软件,一键批量处理
  • 16018.UE4+Airsim仿真环境搭建
  • 详细页智能解析算法:洞悉海量页面数据的核心技术
  • 软件系统测试的基本流程
  • 【PyTorch项目实战】VisRAG:基于视觉的多模态文档检索增强生成(文本+图像)
  • Android 事件分发机制深度解析
  • Android 中的多线程编程全面解析
  • YOLO融合[ICLR2025]PolaFormer中的极性感知线性注意力
  • docker proxy
  • C 解压文件
  • Day55 序列预测任务介绍
  • Subject vs Flowable vs Observable 对比
  • 【零基础学AI】第31讲:目标检测 - YOLO算法
  • 每日算法刷题Day44 7.8:leetcode前缀和4道题,用时1h40min
  • JVM 为什么使用元空间(Metaspace)替换了永久代(PermGen)?——深入理解 Java 方法区与类元数据存储的演进
  • 视频能转成gif动图吗?怎么弄?
  • [NOIP][C++]洛谷P1376 [USACO05MAR] Yogurt factory 机器工厂
  • 没合适的组合wheel包,就自行编译flash_attn吧
  • 行业实践案例:金融行业数据治理体系全景解析
  • Java 关键字详解:掌握所有保留关键字的用途与最佳实践
  • Apache Atlas编译打包,可运行包下载地址
  • DMA技术与音频数据的存储和播放
  • C++STL-vector
  • 【c++学习记录】状态模式,实现一个登陆功能
  • 笔试——Day1
  • numpy数据分析知识总结
  • VMware Workstation不可恢复错误:(vmx)点击设置闪退解决
  • [2-02-02].第03节:环境搭建 - Win10搭建ES集群环境
  • 一天一道Sql题(day03)
  • Choreographer