返回

10月22号:学习日记(函数)

发布时间:2023-02-10 23:32:36 229

C语言中函数的分类

1.库函数(在使用过程中频繁使用)

2.自定义函数

#include 
#include
#include
#include

int main()
{
//strcpy-string copy-拷贝字符串
//strlen-string length-计算字符串长度
char arr[] = "ajsifn";
char arr1[] = "#########";
strcpy(arr1, arr);
printf("%s\n", arr1);
return 0;
}

memset函数

#include 
#include
#include
#include

int main()
{
char arr[] = "hello world";
memset(arr,'*',5);//(目标,替换元素(ASCII),替换字节)替换不能超出目标的存储空间
printf("%s\n", arr);
return 0;
}

自定义函数的组成

ret_type fun_name(para1, * )
{
statement;//语句项
}
ret_type 返回类型
fun_name 函数名
para1 函数参数

自定义函数实现交换两个数

#include 
#include
#include
#include
void swap2(int* pa, int* pb)
{
int tmp=0;
tmp = *pa;
*pa = *pb;
*pb = tmp;
}


int main()
{
int a=20;
int b = 10;
swap2(&a,&b);
printf("%d%d\n", a,b);
return 0;
}//当实参传给形参的时候,形参实际是实参的临时拷贝
//对形参的修改是不影响实参

传值调用

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

传址调用

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

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

作函数外部的变量。

要改变函数外部变量时,要用传址调用。如果仅仅只是要获得一个值,使用传值调用即可。

用函数实现二分查找法

#include 
int binary_search(int arr[], int k,int sz)//本质上这里arr是一个指针
{

int left = 0;
int right = sz - 1;
int mid = 0;
while (left <= right)
{
mid = (left + right) / 2;
if (arr[mid] < k) left = mid + 1;
else if (arr[mid]>k) right = mid - 1;
else return(mid);
}
while (left > right) return(-1);
}


int main()
{
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;
}

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
数据类型转换 2023-02-10 23:24:08