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

C语言,指针的一些运算

若创建一个数组:int arr[10] = 0;

用指针变量来储存数组首元素的地址:int* p = arr,这里arr是数组名,表示首元素地址。

若p = p + 1或者p++之后p本来指向数组首元素地址,就变成了指向第二个元素的地址,p + n即指向第n + 1个地址。

减法也是同理,还可以用指针的方式来相减,即指针减指针,第3个元素的地址减去第一个元素的地址就为2,以此类推。

语法规定,数组指针的比较可以向后越界比较,但是不能向前比较。

既然数组名代表首元素地址,为什么不能直接用数组名来加减呢

 因为数组名代表首元素地址是数组名的性质,性质是不可改变的,不会因为加减就改变数组名是首元素地址的性质。

 为什么传址调用就可以使用arr++了呢,因为函数接收到的不是数组,而是首元素的地址,这里的arr并不是数组名,而是一个存放了数组的首元素的指针变量,指针变量进行加减就是可以的了。

http://www.lryc.cn/news/190567.html

相关文章:

  • iPhone 如何强制重启
  • 数据结构--单链表操作
  • AlmaLinux (兼容centos)安装Geant4与ROOT
  • FPGA面试题(2)
  • 【C++ Primer Plus学习记录】指针——使用new来创建动态数组
  • 移动app广告变现,对接广告联盟还是选择第三方聚合广告平台?
  • ARM 按键控制 LED灯,蜂鸣器,风扇
  • VirtualBox Ubuntu扩展虚拟机磁盘空间
  • C#开发的OpenRA游戏之电力系统之二
  • Java架构师基础框架设计
  • tortoise创建本地仓库
  • 【FreeRTOS】【STM32】03 FreeRTOSConfig.h头文件简介与修改
  • VScode商店无法访问
  • 【UnityUGUI】复合控件详解,你还记得多少
  • ubuntu下使用gcc编译c程序: “error: stray ‘\357’ in program“
  • LeetCode 143.重排链表
  • 不做决策的“RPA机器人”,不是合格的“数字化劳动力”
  • 网页开发中使用highlight.js实现代码高亮 + 行号
  • 访问Apache Tomcat的manager页面
  • Ubuntu 20.04.6 LTS repo int 提示/usr/bin/env: “python“: 权限不够
  • python随手小练5
  • 一分钟!图片生成32种动画;Adobe绘画工具大升级;复盘Kaggle首场LLM比赛;VR科普万字长文 | ShowMeAI日报
  • [Framework] Android Handler 工作原理
  • KITTI数据集中的二进制激光雷达数据(.bin文件)转换为点云数据(.pcd文件)(C++代码)
  • 全球AI人工智能领袖:Anthropic联合创始人丹妮拉·阿莫迪!
  • CoT 的方式使用 LLM 设计测试用例实践
  • 神秘的锦衣卫
  • Springboot中使用Redis
  • 超声波波形生成电路设计
  • C#和JS交互之Microsoft.ClearScript.V8(V8引擎)