2025_1_31 C语言中关于数组和指针

ops/2025/2/1 9:39:59/

1.数组作为指针传递

数组作为指针传递可以:

  • 加一个数
  • 减一个数
  • 两个指针相减
  • 自增
  • 自减
int main() {int arr[] = { 1,2,3,4,5,6,7,8,9 };printf("%d\n", arr[0] + 2);printf("%d\n", arr[2] - 2);printf("%d\n", arr[0] + arr[2]);int* p = &arr[0];int* q = &arr[2];printf("%d\n", q - p);//数组的指针可以相减,表示下标之差return 0;
}

在这里插入图片描述

2.*p++

*p++常被用于数组的遍历
他是先返回当前解引用的值,然后自增,指向下一个元素的地址。

void traverse(int* arr, int len) {int* p = arr;while (p < arr + len) {printf("%d\n", *p++);}
}int main(){int a[] = { 1,2,3,4,5,6,7 };traverse(a, 7);return 0;
}

3.指针作为返回值

指针作为返回值一般是高危操作,因为这个指针在函数内被创建,一旦函数被销毁,这个指针就成为了悬空指针,指向了被释放的内存区域。

所以要返回的指针最好被设置为静态的或者动态分配

int* get_max_min(int* arr, int len) {int max = arr[0], min = arr[0];for (int i = 1; i < len; i++) {if (max < arr[i]) {max = arr[i];}}for (int i = 1; i < len; i++) {if (min > arr[i]) {min = arr[i];}}static int result[2];result[0] = max;result[1] = min;return result;
}
int main() {int arr[] = { 1,2,3,4 };int* result = get_max_min(arr, sizeof(arr) / sizeof(arr[0]));printf("%d %d", result[0], result[1]);return 0;
}

http://www.ppmy.cn/ops/154708.html

相关文章

【张雪峰高考志愿填报】合集

【张雪峰高考志愿填报】合集 链接&#xff1a;https://pan.quark.cn/s/89a2d88fa807 高考结束&#xff0c;分数即将揭晓&#xff0c;志愿填报的关键时刻近在眼前&#xff01;同学们&#xff0c;这可是人生的重要转折点&#xff0c;选对志愿&#xff0c;就像为未来铺就一条…

MYSQL--一条SQL执行的流程,分析MYSQL的架构

文章目录 第一步建立连接第二部解析 SQL第三步执行 sql预处理优化阶段执行阶段索引下推 执行一条select 语句中间会发生什么&#xff1f; 这个是对 mysql 架构的深入理解。 select * from product where id 1;对于mysql的架构分层: mysql 架构分成了 Server 层和存储引擎层&a…

计算机网络 性能指标相关

目录 吞吐量 时延 时延带宽积 往返时延RTT 利用率 吞吐量 时延 时延带宽积 往返时延RTT 利用率

“新月之智”智能战术头盔系统(CITHS)

新月人物传记&#xff1a;人物传记之新月篇-CSDN博客 相关文章链接&#xff08;更新&#xff09;&#xff1a; 星际战争模拟系统&#xff1a;新月的编程之道-CSDN博客 新月智能护甲系统CMIA--未来战场的守护者-CSDN博客 目录 一、引言 二、智能头盔控制系统概述 三、系统架…

前端学习-事件解绑,mouseover和mouseenter的区别(二十九)

目录 前言 解绑事件 语法 鼠标经过事件的区别 鼠标经过事件 示例代码 两种注册事件的区别 总结 前言 人道洛阳花似锦&#xff0c;偏我来时不逢春 解绑事件 on事件方式&#xff0c;直接使用null覆盖就可以实现事件的解绑 语法 btn.onclick function(){alert(点击了…

[MySQL]事务的隔离级别原理与底层实现

目录 1.为什么要有隔离性 2.事务的隔离级别 读未提交 读提交 可重复读 串行化 3.演示事务隔离级别的操作 查看与设置事务的隔离级别 演示读提交操作 演示可重复读操作 1.为什么要有隔离性 在真正的业务场景下&#xff0c;MySQL服务在同一时间一定会有大量的客户端进程…

HTML5使用favicon.ico图标

目录 1. 使用favicon.ico图标 1. 使用favicon.ico图标 favicon.ico一般用于作为网站标志&#xff0c;它显示在浏览器的地址栏或者标签上 制作favicon图标 选择一个png转ico的在线网站&#xff0c;这里以https://www.bitbug.net/为例。上传图片&#xff0c;目标尺寸选择48x48&a…

OpenAI模块重构

文章目录 1.common-openai-starter1.目录结构2.OpenAiProperties.java 新增apiUrl3.OpenAIAutoConfiguration.java4.OpenAiClient.java 使用gson重构 2.common-openai-starter-demo1.目录结构2.application.yml 新增api-url3.OpenAiController.java4.OpenAiApplication.java5.测…