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

指针数组和数组指针的应用案例

1. 指针数组应用:查找最长字符串

用指针数组存储若干字符串,编写函数找出其中最长的字符串(若有多个,返回第一个)。

#include <stdio.h>
#include <string.h>// 函数原型:找出最长字符串
const char* findLongestString(const char* arr[], int size);int main() {// 定义并初始化指针数组const char* strings[] = {"apple","banana","cherry","date","elderberry"};int size = sizeof(strings) / sizeof(strings[0]);  // 计算数组大小// 调用函数查找最长字符串const char* longest = findLongestString(strings, size);// 输出结果if (longest != NULL) {printf("最长的字符串是: %s\n", longest);} else {printf("数组为空!\n");}return 0;
}// 函数实现:找出最长字符串
const char* findLongestString(const char* arr[], int size) {if (size <= 0) return NULL;  // 处理空数组const char* longest = arr[0];  // 初始化最长字符串为第一个元素for (int i = 1; i < size; i++) {if (strlen(arr[i]) > strlen(longest)) {longest = arr[i];  // 更新最长字符串}}return longest;
}

题目2、

数组指针应用:二维数组求和

题目:用数组指针作为函数参数,求一个M行N列二维数组的所有元素之和。

#include <stdio.h>// 函数声明:使用数组指针计算二维数组元素之和
int sumArray(int (*arr)[5], int rows);int main() {// 定义并初始化一个3行5列的二维数组int arr[3][5] = {{1, 2, 3, 4, 5},{6, 7, 8, 9, 10},{11, 12, 13, 14, 15}};// 调用函数计算总和int total = sumArray(arr, 3);// 输出结果printf("二维数组所有元素之和为: %d\n", total);return 0;
}// 函数定义:通过数组指针访问二维数组元素并求和
int sumArray(int (*arr)[5], int rows) {int sum = 0;  // 初始化累加和为0// 外层循环遍历每一行for (int i = 0; i < rows; i++) {// 内层循环遍历当前行的每一列元素for (int j = 0; j < 5; j++) {// 累加当前元素的值到总和sum += arr[i][j];  // 等价于 *(*(arr+i)+j)}}return sum;  // 返回计算结果
}

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

相关文章:

  • js对象简介、内置对象
  • 聊聊数据和功能测试面临的挑战有哪些?
  • #systemverilog# 关键字之 变量声明周期与静态方法关系探讨
  • 美团外卖霸王餐接口对接具体操作步骤
  • NW972NW974美光固态闪存NW977NW981
  • 【读论文】AgentOrchestra 解读:LLM 智能体学会「团队协作」去解决复杂任务
  • 海思3516CV610 卷绕 研究
  • JxBrowser 8.9.2 版本发布啦!
  • Python22 —— 标准库(random库)
  • 简单手写一个Spring boot starter
  • flask request实现两台PC之间文件传输通信
  • 华夏基金(ChinaAMC)推出全球首只人民币计价的代币化货币基金
  • AUTOSAR进阶图解==>AUTOSAR_SWS_BusMirroring
  • lombok版本过低导致@SuperBuilder注解编译无法通过(java: 类型变量数目错误; 需要3)
  • Fiddler 中文版在移动开发中的调试应用 从抓包到性能调优
  • CMSIS DSP FFT
  • Linux探秘坊-------15.线程概念与控制
  • 内容安全策略(CSP)详解:Web安全的关键防线
  • SegNet:一种用于图像分割的深度卷积编码器解码器架构
  • 简单易懂,动态分区分配算法
  • Leetcode刷题营第二十九,三十题:二叉树的中序以及后序遍历
  • mongosh 安装记录
  • ruoyi-cloud启动常见问题处理
  • set、map 比数组,json 对象的性能更好原因分析
  • Python元组(Tuple)指南
  • [RAG system] 信息检索器 | BM25 Vector | Pickle格式 | HybridRetriever重排序
  • 教资科三【信息技术】— 学科知识: 第二章(计算机系统基础)
  • 【程序地址空间】虚拟地址与页表转化
  • 自己训练大模型?MiniMind 全流程解析 (二) 监督微调SFT
  • 【Bluedroid】A2dp Sink初始化(init_sink)源码分析[2]:btif_a2dp_sink_init