IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言循环、函数知识点总结 -> 正文阅读

[C++知识库]C语言循环、函数知识点总结

C语言的真假:假:0 ? 真:非0 ?例如:-1、5都代表真

if、else、else if下方的语句,若没有代码块时,都默认只能控制一条语句,且else 是与距离最近的if匹配的

switch语句:
case决定入口,break决定出口
若无case匹配的标签值,则增添default,位置可前可后
每一个case、default语句后都应加入break,若无则会顺序执行直至遇到break才跳出循环

while、for、do while循环中的break continue作用
break:循环全部结束
continue:在while、do while循环中,跳出本次循环,来到条件判断部分,看是否满足条件,循环是否继续进行
? ? ? ? :在for循环中,跳出本次循环,来到i++,调整之后,在重新进入判断部分,看是否满足条件,循环时候进行

子函数定义:
返回值类型 函数名(参数类型 函数参数)//可以没有参数和返回值类型
{
?? ?子函数体;
}

传值调用:形参和实参分别占据不同的内存空间,形参只是接收到了实参的数值,可以利用数值进行运算,
? ? ? ? ? 但是两者地址不同,对形参的修改不会影响到实参。
void swap(int a, int b)
{
?? ?int tmp = a;
?? ?a = b;
?? ?b = tmp;
}
int main()
{
?? ?int a = 0;
?? ?int b = 0;
?? ?scanf("%d%d", &a, &b);
?? ?swap(a, b);
?? ?printf("%d %d", a, b);

}
*********************************************
//传址调用:将实参的地址传递给形参,使得实参和形参建立起真正的联系,形参改变则实参跟着改变。
void swap(int* a, int* b)
{
?? ?int tmp = 0;
?? ?tmp = *a;
?? ?*a = *b;
?? ?*b = tmp;
}
int main()
{
?? ?int a = 0;
?? ?int b = 0;
?? ?scanf("%d%d", &a, &b);
?? ?swap(&a, &b);
?? ?printf("%d %d", a, b);

}
函数参数
实参:真实传给函数的参数(主函数调用子函数时的参数),可以是常量,变量,表达式,函数
形参:子函数函数名后的参数,只有在子函数被调用时才分配内存单元,调用完成后自动销毁,只有在子函数中才有效

函数可以嵌套调用,但不可以嵌套定义
/*
void test1()
{
?? ?void test2()
?? ?{

?? ?}
}
*/

函数链式访问:把一个函数的返回值作为另一个函数的参数

函数先声明后使用,若在调用前有子函数的定义,则可不必声明

函数分模块:
子函数.c :放子函数的定义
子函数.h :放子函数的声明 (定义子函数的第一行)--> 返回值类型 子函数名( 参数类型 子函数参数 )
主函数 ? :#include "子函数名.h"+子函数的调用

函数递归:函数自己调用自己
//例1:将1234按顺序打印每一位
print(1234) = print(123)4 = print(12)34 = print(1)234 = 1234;
print(1234) = print(1234 / 10) + printf("%d ", 1234 % 10);
print(123)= print(123/10)+ printf("%d ", 123 % 10);
print(12)= print(12 / 10)+ printf("%d ", 12 % 10);
print(1) = printf(1 % 10);

int print(int n)
{
?? ?if (n > 9)
?? ?{
?? ??? ?print(n / 10);
?? ?}
?? ?return printf("%d ", n % 10);
}
int main()
{
?? ?int num = 1234;
?? ?print(num);
}
//例2:利用递归法求字符串长度
int len(char* ch)
{
?? ?if (*ch == '\0')
?? ?{
?? ??? ?return 0;
?? ?}
?? ?else
?? ?{
?? ??? ?return 1 + len(ch + 1);
?? ?}
}
int main()
{
?? ?char arr[] = "abcde";
?? ?printf("%d\n", len(arr));
}
//例3:求第n个斐波那契数
int fib(int n)
{
?? ?if (n > 2)
?? ?{
?? ??? ?return ?fib(n - 1) + fib(n - 2);
?? ?}
?? ?else if (n > 0 && n < 3)
?? ?{
?? ??? ?return 1;
?? ?}
?? ?else
?? ?{
?? ??? ?return 0;
?? ?}
}
int main()
{
?? ?int ?n = 0;
?? ?scanf("%d", &n);
?? ?printf("%d\n", fib(n));
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-23 12:09:25  更:2021-11-23 12:11:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:42:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码