C语言之函数的参数

一.函数的参数

1.实参:真实传给函数的参数

实参可以是:常量 变量 表达式 函数等

无论实参是何种类型的量,在进行函数调用时,他们都必须是确定的值,以便把这些值传送给形参

2.形参:值函数括号中的变量,形式参数只有在被调用时才实例化(分配内存单元),当函数调用完后自动销毁 既形式参数只在函数中有效

3.当实参传递给形参时,形参是实参的一个临时拷贝 所以对形参的修改不能改变实参

cs 复制代码
#include<stdio.h> 
//交换
void Swap(int* x,int* y){
	int z=0;
	z=*x;
	*x=*y;
	*y=z;	
} 
int main()
{
	int a = 20;
	int b = 10;
	Swap(&a,&b);
	printf("交换完成:a=%d,b=%d",a,b);
}

使用指针:

通过传递实参的地址(即指针),函数内部可以通过解引用指针来修改实参的值。

使用结构体:

通过传递一个包含多个成员的结构体,函数内部可以修改结构体的成员。

二.函数的调用

1.传值调用

函数的形参和实参分别占有不同的内存块,对形参的修改不会影响实参

2.传址调用

传址调用是把函数外部创建变量的内存地址传递给函数参数的一种函数调用方式 这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是函数内部可以直接操作函数外部的变量

例:判断是否为素数

cs 复制代码
#include<stdio.h> 
int main(){
	int i;
	for(i=0;i<=100;i++)
	{
		//判断是否为素数用2~i-1试除i即可
		int flag=1;//flag是1表示i是素数 
		int j=0;
		for(j=2;j<=i-1;j++){
			if(i%j==0){
				flag=0;
				break;
			} 
		} 
		if(flag==1)
		    printf("%d",i);
	}
	return 0;
}
 

优化:若i不为素数 则在1到小于等于sqr(i)的数中必有一个因子 则只需判断2-sqr(i)即可

相关推荐
lixinnnn.2 分钟前
多源BFS:刺杀大使
算法·宽度优先
AI成长日志28 分钟前
【笔面试算法学习专栏】堆与优先队列实战:力扣hot100之215.数组中的第K个最大元素、347.前K个高频元素
学习·算法·leetcode
北顾笙98032 分钟前
day18-数据结构力扣
数据结构·算法·leetcode
阿Y加油吧40 分钟前
LeetCode 中等难度 | 回溯法进阶题解:单词搜索 & 分割回文串
算法·leetcode·职场和发展
charliejohn1 小时前
计算机考研 408 数据结构 排序算法
数据结构
QH_ShareHub1 小时前
反正态分布算法
算法
王老师青少年编程1 小时前
csp信奥赛c++中的递归和递推研究
c++·算法·递归·递推·csp·信奥赛
Bczheng11 小时前
五.serialize.h中的CDataStream类
算法·哈希算法
小O的算法实验室1 小时前
2025年SEVC,考虑组件共享的装配混合流水车间批量流调度的多策略自适应差分进化算法,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
汀、人工智能1 小时前
[特殊字符] 第36课:柱状图最大矩形
数据结构·算法·数据库架构·图论·bfs·柱状图最大矩形