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)即可

相关推荐
smj2302_7968265217 分钟前
解决leetcode第3869题.统计区间内奇妙数的数目
python·算法·leetcode
TracyCoder12331 分钟前
LeetCode Hot100(66/100)——118. 杨辉三角
算法·leetcode·职场和发展
葳_人生_蕤33 分钟前
Leetcode HOT 100
算法·leetcode·职场和发展
仟濹39 分钟前
【算法打卡day23(2026-03-15 周日)今日算法or技巧:双指针 & 链表 & 回溯算法】6个题
数据结构·算法·链表
Je1lyfish1 小时前
CMU15-445 (2026 Spring) Project#2 - B+ Tree
linux·数据结构·数据库·c++·sql·spring·oracle
沉鱼.441 小时前
序列问题模型(LIS LCS LCIS)
数据结构
靠沿1 小时前
【优选算法】专题十四——优先级队列
算法
无尽的罚坐人生1 小时前
hot 100 35. 搜索插入位置
数据结构·算法·leetcode·二分查找
钢琴上的汽车软件1 小时前
用 C 语言实现面向对象:pThis 模式技术解析
c语言·面向对象
葳_人生_蕤1 小时前
力扣Hot100——234.回文链表
算法·leetcode·链表