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

C35-数组和函数开发初见

一 数组作为函数的参数

  • 用于传递数组中的某一个元素→意义不大

  • 数组名当做函数实际参数

  • 示例

    • 代码
    #include <stdio.h>//封装函数PrintArr
    void  PrintArr(int arr[3]){int i;for(i=0;i<3;i++){printf("%d ",arr[i]);}putchar('\n');}//主函数
    int main()
    {   //初始化数组int arr[3]={78,56,43};//调用已封装的函数PrintArrPrintArr(arr);return 0;
    }
    
    • 结果

image-20250511151616309

二 数组传参中关于形式参数的秘密

  1. 数组形参会退化为指针
    • 影响:
      • 无法通过"sizeof(arr)"获取原数组长度,其结果为指针大小(也就是数组首元素地址),通常为4或8字节
      • 因此必须额外传递数组长度参数(如:int len),否则在原数组发生长度改变时无法正确遍历数组
  • 为使函数封装具有通用性,增加了传递数组长度的参数len

    • 代码
    #include <stdio.h>//封装函数PrintArr
    void  PrintArr(int arr[3],int len){int i;//循环:用于在封装函数中遍历输出数组元素puts("数组里的元素为:");for(i=0;i<len;i++){printf("%d ",arr[i]);}puts("\n\n");//此部分代码用于"在封装函数里"测试数组的大小printf("在封装函数测试,该数组的大小为:%d\n\n",sizeof(arr));}//主函数
    int main()
    {   //初始化数组int arr[3]={78,56,43};//定义用于传递数组长度的变量int len;len=sizeof(arr)/sizeof(arr[0]);//调用已封装的函数PrintArrPrintArr(arr,len);//下一行代码用于"在主函数里"测试原数组的相关参数printf("在主函数测试,原数组的大小为:%d\n",sizeof(arr));printf("在主函数测试,原数组的长度为:%d\n",len);return 0;
    }
    
    • 结果
      image-20250511183432402

相关文章:

  • DEEPPOLAR:通过深度学习发明非线性大核极坐标码(2)
  • 从3秒到500ms:一套完整的慢SQL分析与优化的经验
  • 英语听力口语词汇--2.宣传类
  • AVL树解析
  • NPDP.新产品开发职业认证知识体系NPDP.BOK
  • 抽奖系统-基本-注册
  • 元数据和主数据
  • 2918. 数组的最小相等和
  • C++自学笔记 makefile
  • 嵌入式学习笔记 - STM32 ADC,多重转换,内部参考电压,
  • 数据指标和数据标签
  • STM32学习记录——点灯
  • 栈Stack(附源码)
  • linux kernel调度触发机制
  • Kubernetes基础(三十二):Worker节点启动全解析
  • 深度解析大模型学习率:优化策略与挑战
  • Linux-Ext系列文件系统
  • 【仿真】【具身智能仿真】Isaac Simlab云端部署(入门学习性价比最高的方式)
  • 广东省省考备考(第八天5.11)—言语:片段阅读(每日一练)
  • 【python编程从入门到到实践】第六章 字典
  • 国羽用冠军开启奥运周期,林丹:希望洛杉矶奥运取得更好成绩
  • 伊美第四轮核问题谈判开始
  • 种罂粟喂鸡防病?四川广元一村民非法种植毒品原植物被罚​
  • 云南多地突查公职人员违规饮酒:公安局门口开展酒精吹气测试
  • 拿出压箱底作品,北京交响乐团让上海观众享受音乐盛宴
  • 欧盟委员会计划对950亿欧元美国进口产品采取反制措施