C语言笔记

举报
牛小牛 发表于 2022/04/12 20:26:06 2022/04/12
【摘要】 C语言函数

  知识点来咯:

形参(形式参数)

在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参

实参(实际参数)

函数被调用时给出的参数包含了实实在在的数据,会被函数内部的代码使用,所以称为实际参数,简称实参

上面的函数中的参数x,y,pa,pb 都是形式参数,在main函数中传给swap函数的num1和num 2都是实际参数

注:当实参传给形参的时候,形参其实是实参的一份临时拷贝,对形参的修改是不会改变实参的。

函数的调用:

传值调用:函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参。

传值调用:传值调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。 

这种传参方式可以让函数和函数外边的变量建立起真正的联系,也会就是函数内部可以直接操作函数外部的变量。

练习:

写一个函数可以判断是不是素数

int is_prime(int n)
{
	int j = 0;
	for (j = 2; j < n; j++)
	{
		if (n % j == 0)
			return 0;
	}
	return 1;
}
int main()
{
	int i = 0;
	for (i = 100; i <= 200; i++)
	{
		//判断i是否为素数
		if (is_prime(i) == 1)
			printf("%d ", i);
	}

	return 0;
}

 二分查找

int binary_search(int arr[], int k, int sz)
{
	//算法的实行
	int sz = sizeof(arr) / sizeof(arr[0]);
	int left = 0;
	int right = sz - 1;

	while (left <= right)
	{
		int mid = (left + right) / 2;//中间元素的下标
		if (arr[mid] < k)
		{
			left = mid + 1;
		}
		else if (arr[mid] > k)
		{
			right = mid - 1;
		}
		else
		{
			return mid;
		}
	}
	return -1;
}
int main()
{
	//	二分查找
	//在一个有序数组中查找具体的某个数
	//如果找到了返回这个数的的下表,找不到的返回-1

	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int k = 7;
	int sz = sizeof(arr) / sizeof(arr[0]);
	int ret = binary_search(arr, k, sz);
	if (ret == -1)
	{
		printf("找不到指定的数字\n");
	}
	else
	{
		printf("找的到,下标是:%d\n", ret);
	}
		return 0;
}



 函数的嵌套调用和链式访问

函数和函数之间可以有机结合

嵌套调用


void new_line()
{

	printf("hehe\n");
}
void three_line()
{
	int i = 0;
	for (i = 0; i < 3; i++)
	{
		new_line();
	}
}
int main()
{
	three_line;
	return 0;
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。