首页 > 其他分享 >10月22号:学习日记(函数)

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

时间:2022-10-22 21:02:08浏览次数:55  
标签:10 arr return 函数 22 int mid include 日记

C语言中函数的分类

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

2.自定义函数

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

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

memset函数

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

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 <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
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 <stdio.h>
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;
}

标签:10,arr,return,函数,22,int,mid,include,日记
From: https://blog.51cto.com/u_15831605/5786119

相关文章

  • 2022-2023-1 20221322《计算机基础与程序设计》第八周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(2022-2023-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2022-2023-1计算机基础与程序设计第八周作业......
  • loj3885. 「eJOI2022」Bounded Spanning Tree
    草稿:非树边\(u,v,[l,r]\)把\(u,v\)路径上所有边上界与\(r-1\)取个\(\min\)。剩下的边左端点排序后贪心,每次取右端点最小的一个元素。开始只考虑树边。当前加入一......
  • 20221022学习笔记-爬虫基础
    爬虫概述爬虫的概念:网络爬虫(又称为网络蜘蛛,网络机器人)就是模拟客户端(主要指浏览器)发送网络请求,接收请求响应,一种按照一定的规则,自动抓取互联网信息的程序。原则上,客......
  • 2022.43 全真互联应用
    全真互联网可以应用于企业生产的全链条场景,包括沟通与协同、研发与生产、运营与管理、营销与服务,帮助企业实现人与人之间的随时随地“面对面”协作,人与机器之间自由顺畅的......
  • 20221403 《计算机基础与程序设计》第八周学习总结
    学期(2022-2023)学号(20221403)《计算机基础与程序设计》第八周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2022-2023-1-计算机基础与程序设计)这个作业......
  • P2218 题解
    前言题目传送门!更好的阅读体验?二分答案套搜索。思路答案显然具有单调性,于是可以二分答案。问题是如何实现\(\operatorname{check}(k)\)函数(\(k\)指薄膜边长)。其......
  • 工业智能物联网网关BL110对接亚马逊AWS
    BL110是一款各种PLC协议、ModbusRTU、ModbusTCP、DL/T645、IEC101、IEC104、BACnetIP、BACnetMS/TP等多种协议转换为ModbusTCP、OPCUA、MQTT、BACnetIP、华为云IoT......
  • 周六1900C++班级20221022-for循环
    for语法:for(initialization;test-condition;increment){statement-list;}for构造一个由4部分组成的循环:初始化,可以由0个或更多的由逗号......
  • 2022.10.22每日一题
    饿饿饭饭题目描述有\(n\)个同学正在排队打饭,第\(i\)个同学排在从前往后第\(i\)个位置。但是这天食堂内只有一个食堂阿姨,为了使同学们都能尽快的吃上饭,每一个同学......
  • [Online Zoom]L10U1 Attending a meeting
    Tammy:Shallwestart?Doeseveryoneknowwhywe'rehaveingthismeeting?Allemployees:Umm,notreally...Tammy:Oh,ok,nottooworry.It'llbeclearersoonenough......