当前位置: 首页 > news >正文

【C 学习】12.1-函数基础

“知道做不到就是不知道”

一、初见函数

函数格式:

#include <stdio.h>// 函数声明(可放在文件开头或头文件中)
//告诉编译器函数的接口信息(返回类型、名称、参数类型),通常放在源文件开头或头文件(.h)中。参数名可省略,例如 int add(int, int);
int add(int a, int b);int main() {int x = 5, y = 3;// 函数调用int result = add(x, y);printf("结果是:%d\n", result);return 0;
}// 函数定义,提供函数的具体实现(即函数体)
int add(int a, int b) {int sum = a + b;return sum; // 返回计算结果
}

1. 应用场景:代码语句目的很单一,并且操作语句比较复杂,复用程度高,就会用到函数语句。 

2. “代码复制”是程序质量不良的表现,因为如果要做修改,工程量将会很大。将具有同样作用的语句换成“函数”,这样每次需要使用的时候就会更方便——直接在调用函数时传递不同参数。 

3. 函数在定义的时候,形参里面如果有数组,不需要考虑数组的大小,内存里面只占有数组中首个元素的地址。所以函数参数传为数组时,实际传递的是地址,而不是值。

为了避免长度未知带来的错误,可以在参数括号里面再加上int n,用这种形式在后面的循环中控制数组的大小。

4.在定义函数时如果含有二维数组,可以省略行数,但是一定要保留第二个长度(列数)。

即int a[][10]

Tips:

(1)用于计数、结束循环等等的变量(i),在操作的时候,最好用另外一个变量(k)接收它的值之后,用另外一个变量来进行之后的操作,否则,变量i会失去它原本用来计数或者结束的作用。

(2)C语言中,函数参数默认是​​值传递​​。这意味着函数内部接收到的是实参值的一个副本,在函数内修改形参不会影响原始实参的值。若需修改实参,需传递指针。

二、从函数中返回

1. 单一出口:它的作用优于break,在最后结束函数的同时还会返回一个值。

int func(int){//codereturn int/表达式;
}int a
int b = func(a);
int c = func(func(b));//还有比如最常见的主函数
int main(){//codereturn 0;
}

2. 返回的结果要赋值给一个变量,并且被赋值的这个变量同样可以参与各种运算;

3. 函数的返回值可以再传递给其他函数,甚至可以丢弃(就是没有用变量来接受,因为在代码中用到函数不一定就是要那个返回值,也有可能是利用返回值的其他作用)。

4. 在函数里面最好就只用一个return出口,符合单一出口原则。

5. 对于没有返回值的函数:

a)    函数形式改为“void 函数名(参数表)”;
b)    不能使用呆滞的return;
c)    可以没有return;
d)    调用的时候不能做返回值的赋值。

三、函数的定义和调用

1. 函数:函数是一块代码,接受零个或者多个参数,做一件事情,并返回零个或一个值。

2. 调用函数:函数名(参数值)。

(1)即使没有参数也一定要带有“()”;

(2)如果是有参数的,则需要按照函数定义时给出正确的数量和顺序,会依次用来初始化函数中的形参。

写在最后:

更新C语言学习笔记

如有错误,烦请多多批评指正!

http://www.dtcms.com/a/470114.html

相关文章:

  • 11.程序地址空间_2
  • Java的方法重写/覆盖
  • 门户网站建站要求外国做家具的网站
  • 『 数据库 』MySQL复习(表的约束)
  • 房地产开发公司网站源码做高端网站的公司
  • 【vue】使用web worker上报日志:
  • MySQL 与Power BI 的作用,以及在数据分析中扮演的角色
  • k歌里的相片是通过网站做的吗typecho与Wordpress同步
  • 如何做中英版网站简单写文章的网站
  • Linux 进程通信——基于责任链模式的消息队列
  • 手机能做网站吗北京软件开发公司哪家专业
  • 物流网站的建设免费推广平台排行榜
  • iOS一直讲的单元格优化
  • 信阳网站seo用手机怎么做网站
  • 【Canvas技法】 卡通版太阳的三种画法
  • 词根学习笔记 | Agri系列
  • PHP解决跨域请求问题的两种实用方法
  • 语音大模型自监督训练思路
  • 辉芒微单片机FT60E12X,Touch 系列8位单片机MCU简要分析
  • w3c网站代码标准规范自己做的网站怎么接入网页游戏
  • 一篇文章详细解析 IPv4地址
  • 主办单位性质与网站名称不符绍兴专业做网站公司
  • C++ 简介
  • ValueTuple 详解
  • 框架--MyBatis
  • 1.C++基础(上)
  • cursor一些简单的使用心得官方的建议
  • 新能源汽车公司如何落地 ASPICE
  • 网站建设中的注册和登录页面网站开发技术期末考试题
  • react hooks