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

C语言-9.指针

9.1指针

9.1-1取地址运算:&运算符取得变量的地址

运算符&

  • scanf(“%d”,&i);里的&
  • 获取变量的地址,它们操作数必须是变量
  • int i;printf(“%x”,&i);
  • 地址的大小是否与int相同取决于编译器
  • int i;printf(“%p”,&i);
    &不能取的地址
  • 不能对没有地址的东西取地址
  • &(a+b) &(a++) &(++a)这些都不能取地址
    试试这些&
  • 变量的地址
#include <stdio.h>int main()
{int a=1;printf("0x%p",&a);return 0;
}

在这里插入图片描述

  • 相邻变量的地址
#include <stdio.h>int main()
{int a=1;int b=2;printf("0x%p\n",&a);printf("0x%p\n",&b);return 0;
}

在这里插入图片描述

  • &的结果的sizeof
#include <stdio.h>int main()
{int a=1;int b=2;printf("0x%p\n",&a);printf("0x%p\n",&b);printf("%lu\n",sizeof((&a)));return 0;
}

在这里插入图片描述

  • 数组的地址
  • 数组单元的地址
  • 相邻的数组单元的地址
#include <stdio.h>int main()
{int a[10];printf("%p\n",a);printf("%p\n",&a);printf("%p\n",&a[0]);printf("%p\n",&a[1]);
}

在这里插入图片描述
&数组名,数组名,数组名[0],都表示数组的首地址。

9.1.2指针:指针变量就是记录地址的变量

scanf

  • 如果能够将取得的变量的地址传递给一个函数,能否通过这个地址在那个函数内访问这个变量
  • scanf(“%d”,&i);
  • scanf()的原型应该是怎样的?我们需要一个参数能保存别的变量的地址,如何表达能够保存地址的变量?
    指针
    就是保存地址的变量
    int i;
    int* p = &i;
    int* p,q;
    int p,q;
    这里边的 号只是表示p是存储地址的变量,不是代表int这种类型,也没有int
    这种类型。
    int *p=&a,应为int *p中p是要储存一个地址,所以给int *p赋值时必须是一个变量的地址
    int *p,q这里边只有p是存储地址的变量,而q还是一个int型的变量。
    指针变量
  • 变量的值是内存的地址
  • 普通变量的值是实际的值
  • 指针变量的值是具有实际意义的变量的地址
    作为参数的变量
  • void f(int *p);
  • 在被调用的时候得到了某个变量的地址;
  • int i = 0;f(&i);
  • 在函数里面可以通过这个指针访问外面的这个i
http://www.xdnf.cn/news/7765.html

相关文章:

  • “交互式“ PDF 与“静态“ PDF 表单的区别
  • liinux系统安装Helm
  • 系统数据对接-从获取到处理的全流程
  • PH热榜 | 2025-05-20
  • Ubuntu24.04安装Dify
  • YOLO中model.predict方法返回内容Results详解
  • 智能笔记助手-NotepadAI使用指南
  • 【大模型面试每日一题】Day 24:假设训练资源有限,如何在模型参数量、训练数据量和训练时长三者间做权衡?
  • MySQL之数据库基础知识,库和表的操作以及基础数据类型
  • Paillier加密方案的原理、实现与应用(dev)
  • Cribl 使用Function 的实际例子-02
  • MinerU可视化界面程序部署(Windows环境)
  • HarmonyOS5云服务技术分享--退出登录文档问题
  • Jenkins安装和配置
  • 无人机精准降落与避障模块技术解析
  • ZYNQ Cache一致性问题解析与实战:从原理到创新优化
  • SAGE:基于SAM进行二级蒸馏的多模态图像融合新方法,CVPR2025
  • 测试概念
  • 嵌入式项目之交叉编译m2440篇
  • 基于望获操作系统的具身智能人形机器人典型应用案例
  • CompleteableFuture的异步任务编排
  • python读写bin文件
  • 《算法笔记》11.7小节——动态规划专题->背包问题 问题 C: 货币系统
  • SCAU18923--二叉树的直径
  • NC65联查单据问题总结
  • 宽带卫星通信介绍
  • 今日行情明日机会——20250520
  • 基于双通道频谱分析的振动信号故障诊断1
  • 波峰波谷策略
  • 野火鲁班猫(arrch64架构debian)从零实现用MobileFaceNet算法进行实时人脸识别(三)用yolov5-face算法实现人脸检测