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

C40-指针

一 指针的引入

  1. 什么是指针:指针是一个变量,其值是另一个变量的内存地址

  2. 简单的使用地址输出一个变量:

    • 代码示例

      #include <stdio.h>
      int main()
      {int a=10;printf("a的地址是:%p\n",&a);printf("a=%d\n",*(&a)); //*号是取值运算符return 0;
      }
      
    • 成果展示:

    image-20250515201409413

    • 报错与总结:无

二 指针变量的引入

  • 整型变量→存放整型数的变量
  • 字符变量→存放字符型数据的变量

由此,指针变量就是存放指针的变量,存放地址的变量

指针变量的声明:

int *ptr;	//声明一个指向int类型的变量ptr
double *dp;	//声明一个指向double类型的变量dp

需要强调的是:"*"在声明指针变量时作用是:表示声明指针变量;而在其它地方用于解引指针

示例:通过指针变量访问并输出一个变量

  • 代码示例:
#include <stdio.h>
int main()
{int a=10;int *p;p=&a;printf("a的地址是:%p\n",&a);printf("通过变量名访问a:%d\n",a);printf("通过地址访问a:%d\n",*(&a));printf("通过指针变量访问a:%d\n",*p);return 0;
}
  • 成果展示:

image-20250515212047760

  • 报错与总结:无

三 指针变量为什么要求类型

原因:

  • 内存访问:不同类型数据占内存空间不同,指针类型决定解引用时读取字节数,避免错误读写
  • 指针运算:指针运算偏移量与指向类型相关,类型不符则无法正确计算偏移

实验:对比正确与错误的指针类型的地址访问、数据访问、指针偏移

正确的

  • 代码示例:
#include <stdio.h>
int main()
{int a=0x1234;int *p=&a;puts("我们在这里测试指针的地址:");printf("p:%p\n",p);puts("\n我们在这里测试通过指针访问变量:");printf("来自p的测试:%x\n",*p);puts("\n我们在这里测试指针偏移:");printf("++p:%p\n",++p);return 0;
}
  • 成果展示:

image-20250515232504458

  • 报错与总结:

错误的

  • 代码示例:
#include <stdio.h>
int main()
{int a=0x1234;int *p=&a;char *c=&a;puts("我们在这里测试指针的地址:");printf("c:%p\n",c);puts("\n我们在这里测试通过指针访问变量:");printf("来自c的测试:%x\n",*c);puts("\n我们在这里测试指针偏移:");priintf("++c:%p\n",++c);return 0;
}
  • 成果展示:我们发现,指针类型不兼容从而导致报错

image-20250515232757484

  • 报错与总结:

相关文章:

  • nn.Module 与 nn.functional
  • Hashmap 和 map的区别
  • 单片机开发软件
  • mysql数据库-3 (主从复制)
  • Windows AD 域客户端电脑时间不准解决方案
  • 卷积神经网络和深度神经网络的区别是什么?
  • 地球阿米特黑客组织使用新型工具攻击军用无人机供应链
  • 常见三维引擎坐标轴 webgl threejs cesium blender unity ue 左手坐标系、右手坐标系、坐标轴方向
  • TypeScript:类
  • 达利欧:“交易的艺术”与“背后的力量”
  • 了解光学影像
  • C#自定义控件-实现了一个支持平移、缩放、双击重置的图像显示控件
  • OpenCV人脸识别EigenFace算法、案例解析
  • MySQL 开发的智能助手:通义灵码在 IntelliJ IDEA 中的应用
  • 自营交易考试为何出圈?一场模拟交易背后的真实竞争
  • 为什么elasticsearch配置文件JVM配置31G最佳
  • 世界模型+大模型+自动驾驶 论文小汇总
  • 数据结构(九)——排序
  • Xournal++:开源跨平台笔记软件,手写与创作的完美结合
  • SQL笔记一
  • 网易一季度净利增长三成,丁磊:高度重视海外游戏市场
  • 专家:家长要以身作则,孩子是模仿者学习者有时也是评判者
  • 商务部回应稀土出口管制问题
  • 普京召开俄乌谈判筹备会议,拉夫罗夫、绍伊古等出席
  • 美国与卡塔尔签署超2435亿美元经济及军事合作协议
  • 在稳市场稳预期下,投资者教育给了散户更多底气