c语言从入门到函数速成(完结篇)

news2024/11/16 5:27:00

哈喽,小伙伴们大家好呀,本篇文章是这个系列的完结篇,希望大家看完后能有所收获哦

首先能看到这里的同学,一定也是自觉性比较强的了,我会在文章末尾给大家发点小福利


那么,我们先来通过数学中的函数来引入一下今天的内容吧。

相信大家在初中高中的时候都学过函数,这里我给大家简单地回忆一下

f(x) = x + 9   

给了这个式子,再给出x的值,大家一定都能算出它的值来。其实c语言中的函数也是如此。

简单地给大家举个例子:

int  sum(int c, int d)

{

    return  c + d;

}

int main()

{

int   a = 9;

int   b = 5;

 int f  =  sum(a,b);

printf("%d\n",f);

return 0;

}

我们先来理解一下这串代码

代码理解

sum(a,b);这一步是将a 和 b的值传到sum函数中, 此时a 和 b 是被称为实参

int  sum(int c, int d)//这里就是sum函数的整体了,大家可以这么理解,这一步是数学中的f(x),而这个c和d是形参

{

    return  c + d;//这一步就相当于x + 9   

}

简单地带大家理解了一遍后,其实主题上就没有什么问题了,那么细心的小伙伴们或许也发现了猫腻,为什么要有int 和return 呢?

其实这个是我们的前辈们所规定的,当然也有情况是不需要return的,当然啦,上面的代码只是举个例子,c语言中的函数内部不可能只能是算式,还可以是各种各样的语句。

那么我给大家总结一下自定义函数的模板

自定义函数的模板

类型  函数名(类型 形参,类型 形参)//括号内部的类型与参数的类型有关,与函数的类型无关

{

语句;

//也许会有小伙伴会问为什么这里只有语句,没有return呢,因为有点时候用不上return。

}

这里的函数类型与一开始我们所学的变量类型是差不多的,另外当函数使用的类型是void(空型)时,函数不需要return。

那么,到这里为止,函数的基本内容也就结束了。

接下来给大家讲几个实用的函数,以及使用格式。

strlen函数

strlen 作用:计算字符串的大小与sizeof()的作用一样

其中string.h是strlen的头文件

strlen函数的总结

作用:计算字符串的大小与sizeof()的作用一样

模板:strlen(字符或字符串的变量名和数组名);

strcpy函数

当我们只是单纯使用这个函数时,会出现报错

那么如何解决呢?,其实解决方法和scanf的方法是一样的,这里就不解释如何处理啦

当运行这串代码后,效果如图所示。

那么看完后我们就来做个总结

strcpy函数的总结

作用:复制 变量的内容(注意只能复制字符或字符串的内容)

模板:strcpy(变量2,                 变量1(被复制的内容))

                    // 接收复制内容       被复制者

stract函数

从图中我们看出这个函数的作用是拼接,那么问题来了该函数中还出现了strcpy函数,如果没有strcpy函数会不会影响到这串代码输出的结果呢?

很明显出现了问题,因此我们可以来做一下总结

stract函数的总结

作用:拼接字符串

模板:

stract(变量(一定是非空),拼接内容);

strcmp函数

那么大家可以从这张图中能够很清晰地理解这个函数的作用

strcmp函数的总结

作用:比较字符串的大小

模板:strcmp(数组名1,数组名2)

strcpy、stract、strcmp Vs strncpy、strnact、strncmp

相同点

模板以及作用相同

不同点

strcpy、stract、strcmp的参数

int strcmp ( const char * str1, const char * str2 );
char * strcpy ( char * destination, const char * source );

strncpy、strnact、strncmp的参数

大家可以很明显地发现加了n的函数参数中多了个num那么这个num有什么用呢?这里我也不卖关子了,这个num就是限制的个数。也许小伙伴此刻一定恍然大悟,这里我们还是做一下总结

区别

1.参数上加了n的多了个参数num

2.num作用是限制个数。 eg.如复制字符的个数。


那么到这里,本篇文章的主要内容就结束了,最后就是给大家分享个查c语言以及c++函数用的“小字典”,网站我就给大家放在下方啦大家自行保存一下哦

cplusplus.com - The C++ Resources Network

那么使用方法如下:

在这个框中输入想要查找的函数


那么本篇文章的内容到此结束,喜欢我的小伙伴可以给我点个关注哦,我们下期再见,拜拜!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1702114.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

neo4j docker安装使用,py2neo python包使用

参考:https://neo4j.com/docs/operations-manual/current/docker/introduction/ 运行: docker run --publish7474:7474 --publish7687:7687 neo4j查看: http://192***ip:7474 username/password 都是 neo4j/neo4j 简单案例 创建例子&am…

融资融券操作指南(附最低费率开户渠道)

部分朋友在开通融资融券后,对于融资融券的操作不是很熟练,并且存在很多问题。其实,融资融券核心就是一个“借”,你借券商的资金或者股票,看多时借入资金买入,看空时借入券源卖出。你不可能空口白牙的去借&a…

使用Github Action发布python包到pypi.org

一、pypi中创建token 1. 浏览器中打开这个网址Log in PyPI 输入Token name,选择一个Scope,然后点击Create token 创建成功后,进入到如下页面: 点进Copy token,然后在新的标签页打开github 二、配置token到GitHub …

修改uniapp内置组件checkbox的样式

默认情况下 <view style"margin-bottom: 20rpx;"><label style"display: flex;align-items: center;width: fit-content;" click"handleCheck(cxm4s)"><checkbox /><text>车信盟出险4S维保</text></label>…

学习Uni-app开发小程序Day27

这一章学习了几个功能点&#xff0c;例如&#xff1a;try{}catch处理同步请求下载记录异常处理、onShareAppMessage分享好友和分享微信朋友圈、对分享页面传参进行特殊处理、共用分类列表页面实现我的下载和评分页面、使用mp-html富文本插件渲染公告详情页面 try{}catch处理同…

Java代码——@Mock注入失效,注入对象始终为null

现象&#xff1a; 最近在使用Mock对象做单元测试&#xff0c;但是发现mock的对象始终为null. 代码如下&#xff1a; package com.****.cache;import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.Mock…

基本Java语法和语义 (Reading 2)

&#xff08;1&#xff09;Java和C在变量类型命名和使用 基本数据类型 对象类型与引用类型 特殊类型 关键字和修饰符 &#xff08;2&#xff09;快照图&#xff1a; IDE调试工具: 许多IDE&#xff08;如Eclipse、IntelliJ IDEA&#xff09;提供了调试功能&#xff0c;可以…

新风向?——2DGS(2D高斯泼溅)横空出世

之前读完了3D高斯泼溅&#xff0c;收获颇丰&#xff0c;可没想到的是2D高斯泼溅也在三月份接踵而至。让我们一起解读一下&#xff01; 论文地址: 2D Gaussian Splatting for Geometrically Accurate Radiance Fields 代码地址: 2d-gaussian-splatting 一. 论文解读 Abstract …

Redis 可视化工具 RedisInsight 的保姆级安装以及使用(最新)

Redis 可视化工具 RedisInsight 的保姆级安装以及使用 一、下载 RedisInsight二、安装 RedisInsight三、使用 RedisInsight四、新建 Redis 连接 一、下载 RedisInsight 官网 https://redis.io/insight/填写基本信息之后点击 DOWNLOAD 二、安装 RedisInsight 双击安装包 点击下一…

Kubeadm Online Install Kubernetes v1.30.1

文章目录 简介架构预备条件资源规划 基础配置配置网卡配置 hosts安装常用软件配置互信安装 ansible配置 hosts关闭 swapselinux防火墙文件句柄数配置内核参数日志主机配置代理 安装 containerd方法1. 适用于rocky-8.9-x86_64-dvd1.iso方法2 适用于 rocky-8.9-x86_64-minimal.is…

ARM IHI0069F GIC architecture specification (8)

3.2中断旁路支持 CPU interface可以支持中断信号旁路&#xff0c;使得当接口发出的中断信号被禁用时&#xff0c;传统中断信号被传递到PE上的中断请求输入&#xff0c;从而绕过GIC功能。 是否支持旁路由实际设计决定。 用于确定是否使用GICv3 FIQ和IRQ输出或旁路信号的控制取决…

DOS学习-目录与文件应用操作经典案例-del

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一.前言 二.使用 三.案例 一.前言 DOS系统的del命令是一个用于删除文件的命令行工具。以下…

Android Service应用详解

1、Service概括 由于手机屏幕的限制&#xff0c;通常情况下在同一时刻仅有一个应用程序处于激活状态&#xff0c;并能够显示在手机屏幕上&#xff0c;因此&#xff0c;应用程序需要一种机制&#xff0c;在没有用户界面的情况下&#xff0c;能够长时间在后台运行&#xff0c;实…

SQLI-labs-第二十五关和第二十五a关

目录 第二十五关 1、判断注入点 2、判断数据库 3、判断表名 4、判断字段名 5、获取数据库的数据 第二十五a关 1、判断注入点 2、判断数据库 第二十五关 知识点&#xff1a;绕过and、or过滤 思路&#xff1a; 通过分析源码和页面&#xff0c;我们可以知道对and和or 进…

n7. 图

1.定义 图的每个结构之间有着某种关系。 六度空间理论等&#xff1b; 1.1引子&#xff1a; 最短路径问题 1.2什么是图 表示一种多对多的关系 线性关系表示的是一对一的关系&#xff0c;树表示的是一对多的关系。其实线性表和树其实都可以认为是图的一种特殊的情况。包含&am…

【No More Room in Hell】地狱已满服务器一键开服多人联机教程

1、购买后登录服务器 进入控制面板后会出现正在安装的界面&#xff0c;安装大约5分钟&#xff08;如长时间处于安装中请联系我们的客服人员&#xff09; 2、连接游戏 2.1、安装完成后复制开机下方的IP地址 2.2、打开Steam点击左上角的查看➡服务器 点击收藏➡右下角号 粘贴地址…

重构与优化-前言

关注公众号畅读:IT技术馆 Java代码重构是优化现有代码结构、提升代码可读性、可维护性和性能的过程,而不会改变其外在行为。这包括命名规范、消除重复代码、改进设计模式的使用、优化数据结构和算法等。下面是一些常见的Java代码重构技巧及示例: 1. 重命名(Rename) 目的…

flutter 当Scaffold 不使用appBar 时,切换主题,状态栏图标 明暗色 不自动变化,导致与底色相同

一、问题 下图中实际状态栏并没有隐藏。 为了整体效果页面采用了上下渐变拼接色&#xff0c;并且没有加appBar。 这时候会出现状态栏图标并没有根据底色 进行反差显示。 就目前这个问题&#xff0c;并没有找到什么很好的办法。其原因 就是appBar 没有设置底色。 二、解决方法…

系统与软件工程性能测试方法标准

性能测试的种类包含以下几种&#xff1a; 1.负载测试 load testing 用户评估系统与软件在预期变化负载下的性能表现&#xff0c;负载通常位于低估&#xff0c;典型&#xff0c;高峰使用的预期条件之间。 注&#xff1a;性能效率测试的一种。 建立模型 导出测试覆盖项 对于…

香橙派AIpro开发板开箱体验,国产AI计算力实现可控

一、引言 1. 嵌入式AI技术背景与发展趋势 近年来&#xff0c;随着人工智能技术的飞速发展&#xff0c;嵌入式AI技术在各个领域得到了广泛应用。作为智能设备的核心部件&#xff0c;嵌入式AI开发板为开发者提供了高效、便捷的开发环境&#xff0c;推动了智能设备的不断创新和进步…