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

相关推荐
To_OC5 小时前
LC 15 三数之和:双指针不难,难的是把去重做对
javascript·算法·leetcode
renhongxia18 小时前
世界模型,是“空中楼阁”还是AGI的“最后一块拼图”?
运维·服务器·数据库·人工智能·算法·agi
zephyr0510 小时前
动态规划-最长上升子序列问题
算法·动态规划
闪电悠米10 小时前
力扣hot100-56.合并区间-排序详解
数据结构·算法·leetcode·贪心算法·排序算法
openKylin10 小时前
与全球技术演进同频,openKylin 3.0从C迈向Rust
c语言·开发语言·rust·开源·开放原子·openkylin
迷茫、Peanut11 小时前
C语言sizeof和strlen
c语言
卡提西亚11 小时前
leetcode-1438. 绝对差不超过限制的最长连续子数组
算法·leetcode·职场和发展
Java面试题总结12 小时前
LeetCode 93.复原IP地址
算法·leetcode·职场和发展·.net
从零开始的代码生活_12 小时前
C++ 多态详解:虚函数、动态绑定、抽象类与虚表原理
开发语言·c++·后端·学习·算法
yuannl1012 小时前
图的存储方式
数据结构