17.C语言形参和实参的特点及相关开发

news2024/9/9 8:07:14

形参和实参的特点及相关开发

  • 1.数组和函数开发
  • 2.形式参数的特点
  • 3.实际参数的特点

1.数组和函数开发

数组作为函数的参数

  1. 传递数组中的某个元素。

    #include <stdio.h>
    
    void printdata(int data){
    	printf("%d\n",data);
    }
    
    int main(){
    	int arr[3] = {1,2,3};
    	printdata(arr[2]);
    	return 0;
    }
    
  2. 数组名当作函数实际参数

    #include <stdio.h>
    
    void printdata(int arr[3]){
    	int i;
    	
    	for(i=0;i<3;i++){
    		printf("%d ",arr[i]);
    	}
    	printf("\n");
    }
    
    int main(){
    	int arr[3] = {1,2,3};
    	printdata(arr);
    	return 0;
    }
    

2.形式参数的特点

#include <stdio.h>

void printdata(int arr[3],int len){
	//形参中不存在数组的概念
	//即便是中括号约定了数组的大小也无效
	//原因是:传递的是一个地址,是数组的首地址
	//操作系统中用8个字节来表示一个地址						
	int i;
	printf("printdata的大小是:%d\n",sizeof(arr));
	
	for(i=0;i<len;i++){
		printf("%d ",arr[i]);
	}
	printf("\n");
}

int main(){
	int len;
	int arr[3] = {1,2,3};
	len = sizeof(arr)/sizeof(arr[0]);
	printf("main:arr的大小是:%d\n",sizeof(arr));
	printdata(arr,len);//数组名代表数组的首地址
					   //第一个元素的地址也是数组的首地址
	return 0;
}

3.实际参数的特点

  1. 不能改变main函数的值

    //无法改变main函数的值
    //原因:传递的不是同一个地址
    #include <stdio.h>
    
    void changedata(int data){
    	data =data + 100;
    	printf("address=%p  data=%d\n",&data,data);
    }
    
    int main(){
    	int data = 10;
    	changedata(data);
    	printf("address=%p  data=%d",&data,data);
    	return 0; 
    }
    
  2. 能改变main函数的值

    //能直接更改main函数的值
    //原因:传递的是地址
    //能对main函数的数值进行修改
    #include <stdio.h>
    
    void changedata(int data[]){
    	
    	data[0] =data[0] + 100;
    	printf("address=%p  data=%d\n",&data,data[0]);
    }
    
    int main(){
    	int data[2] = {10,20};
    	changedata(data);
    	printf("address=%p  data=%d",&data,data[0]);
    	return 0; 
    }
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1963661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

探索设计模式:组合模式

探索设计模式&#xff1a;组合模式 &#x1f9d0;1. 概念&#x1f3af;2. 作用&#x1f4e6;3. 用法&#x1f4e6;3.1 绘图示例&#x1f4e6;3.2 文件示例 &#x1f4bb;4. 使用场景 在软件设计中&#xff0c;组合模式&#xff08;Composite Pattern&#xff09;是一种结构型设…

WebLogic:弱口令,木马反弹连接

weblogic WebLogic 是 Oracle 公司开发的应用服务器&#xff0c;主要用作开发、集成、部署和管理大型分布式 Web 应用、网络应用和数据库应用的 Java 应用服务器。它在历史上曾出现过多个安全漏洞&#xff0c;其中包括弱口令、任意文件上传、SSRF、反序列化漏洞等 常见版本&a…

YOLOv8入门 | yaml文件解读,YOLOv8网络结构打印以及网络结构图绘制【小白必看】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

软考高级-系统架构设计师

2024广东深圳考试时间 报考人员可登录中国计算机技术职业资格网&#xff08;http://www.ruankao.org.cn&#xff09;进行网上报名&#xff0c;报名前须扫码绑定个人微信&#xff0c;不允许代报名。 上半年考试报名信息填报时间&#xff1a;2024年3月25日9:00&#xff0d;4月2日…

【ASR系列】【论文阅读】CIF

1. 概念学习 WER(word error rate): 单词错误率,是评价asr系统的一种重要指标,越低越好 是Continuous integrate-and-fire的简称,集成和发射,翻译成积分不太合理,可理解为求和 2. 思想 一个人说了几句话,在说第一句话的时候会不断地对输入的信号集成,说完这句话(达…

计算机毕业设计PySpark+Django高考志愿填报推荐系统 高考预测 高考大数据分析 Hadoop Spark 机器学习 深度学习 Python

在撰写关于《PySpark高考推荐系统》的论文时&#xff0c;推荐算法的实现通常会利用PySpark&#xff0c;这是Apache Spark的Python API。以下是一个使用PySpark中MLlib库的ALS&#xff08;交替最小二乘法&#xff09;算法来构建高考推荐系统的示例代码。在这个示例中&#xff0c…

短视频矩阵系统搭建教程,源码获取,部署上线指南

目录 一、短视频矩阵是什么&#xff1f; 二、搭建教程 1、前端界面开发 2、后端架构搭建 3、第三方视频平台对接 三、部分代码展示 一、短视频矩阵是什么&#xff1f; 短视频矩阵系统是一种集成了多元短视频平台功能的综合性管理工具&#xff0c;它汇聚了多个视频发布渠…

MyBatis-Plus知识总结

1. MP前瞻 官网&#xff1a;https://baomidou.com/ 1、MyBatis-Plus是什么&#xff1a;MyBatis-Plus&#xff08;简称MP&#xff09;是一个MyBatis的增强工具&#xff0c;它在MyBatis的基础上只做增强不做改变&#xff0c;为简化开发、提供效率而生。并且MP内部提供了丰富的 AP…

(已解决,附RDM工具解决方案)如何实现多个redis连接间指定key(键)的数据同步

目录 问题现象&#xff1a; 问题分析&#xff1a; 方法一-重复执行操作&#xff1a; 方法二-redis命令实现导出再导入&#xff1a; 方法三-使用rdb文件实现数据迁移 方法四-RDM工具自带的数据复制功能 总结&#xff1a; 解决方法&#xff1a; 方法一-重复执行…

SpringMVC(包括Servlet,会话技术)理解

目录 前言&#xff1a; Servlet&#xff1a; http请求的内容&#xff1a; 会话技术&#xff1a; Cookie&#xff1a; Session&#xff1a; 案例实现代码&#xff1a; 小总结&#xff08;感想&#xff09;&#xff1a; SpringMVC介绍&#xff1a; 调用流程&#xff1a…

最后一个单词的长度-string

58. 最后一个单词的长度 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int lengthOfLastWord(string s) {int right s.size()-1;while(s[right] ){right--;}int cnt 0;while(right > 0 && s[right] ! ){right--;cnt;}return cnt;} }; 注意…

达梦数据库系列—39.统计信息详解

目录 达梦统计信息 举例 统计信息的缺点 统计信息管理 手动收集 自动收集 查看统计信息 更新统计信息 删除统计信息 达梦统计信息 达梦数据库的统计信息分为表统计信息&#xff0c;列统计信息&#xff0c;索引统计信息。 表&#xff1a;计算表的行数、所占的页数目、…

二百五十、Linux——visudo 命令编辑 /etc/sudoers 文件时报错 “/etc/sudoers 忙,请稍后重试”

一、目的 在Linux上用visudo 命令编辑 /etc/sudoers 文件时报错&#xff0c;/etc/sudoers 忙&#xff0c;请稍后重试 [roothurys23 ~]# sudo visudo visudo: /etc/sudoers 忙&#xff0c;请稍后重试 二、原因分析 1 另一个 visudo 实例正在运行 如果另一个用户或同一个用户…

Mirror学习笔记(一) 简介

文章目录 一、常规学习&#xff1a;Mirror核心功能有服务器和主机 二、时间戳批处理时间戳 三、TCP和UDP四、CCU(同时在线人数)五、SyncDirection(同步方向)六、RTT&#xff08;往返时间&#xff09;七、Connection Quality&#xff08;连接质量&#xff09;八、Lag Compensati…

django档案馆集中管理系统-计算机毕业设计源码31775

目录 摘要 Abstract 第一章 绪论 1.1 选题背景及意义 1.2 国内外研究现状 1.3 研究方法 第二章 相关技术介绍 2.1 MySQL简介 2.2 Python 2.3 Django框架 2.4 Pycharm简介 第三章 档案馆集中管理系统系统分析 3.1 系统可行性分析 3.1.1 技术可行性 3.1.2 经济可行…

FFmpeg研究

1.FFmpeg介绍 FFmpeg的全称是“Fast Forward Moving Picture Expert Group”&#xff0c;组件由命令行应用程序和函数库两部分组成。通俗概括来说&#xff0c;FFmpeg 是一个免费的开源程序库&#xff0c;一个多媒体音视频处理分析工具软件&#xff0c;且提供命令行方式调用&am…

Linux(1)--VMware的安装与配置

Linux Linux是一种自由和开放源码的类Unix操作系统&#xff0c;由林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;于1991年首次发布。Linux以其高效性、灵活性和稳定性而闻名&#xff0c;广泛应用于各种计算机硬件设备中&#xff0c;包括手机、平板电脑、路由器、视频游戏…

【Win10】记一次蓝屏修复

最近电脑蓝屏了好多次&#xff0c;错误代码为&#xff1a;IRQL_NOT_LESS_OR_EQUAL 直接搜这个错误代码不太好找原因&#xff0c;于是按照这篇文章[1]来打开错误日志文件。 需要先在windows的应用商店中下载WinDbg 然后&#xff0c;打开目录 C:\Windows\Minidump &#xff0c;…

React 学习——组件内通信(兄弟之间)

A组件 > B组件 核心思路&#xff1a; 1、A组件先通过子传父的方式把数据传给父组件App 2、App拿到数据后通过父传子的方式再传递给B组件 import { useState } from "react" function A({onGetMsg}){const AMsg 我是A组件的消息return (<div><button…

如何实现全国产业园数量扩展,小编带你共同探讨树莓集团产业园运营模式

在当前快速发展的经济环境中&#xff0c;产业园区作为促进经济发展和技术创新的重要平台&#xff0c;扮演着越来越重要的角色。通过精心策划的战略布局与科学严谨的发展规划&#xff0c;树莓集团依托持续的创新驱动与科技引领&#xff0c;成功实现了全国产业园数量的显著扩展与…