• C语言02、语句、函数


    语句

    C语言有多种语句,大致分为以下五类:

    1.表达式语句

    2.函数调用语句

    3.控制语句

    4.复合语句

    5.空语句

    这里主要介绍控制语句,控制语句大致分为三类:分支语句(条件判断语句if,switch)、循环语句(do...while,while,for)、转向语句(break,goto,continue,return)

    分支语句(if、switch)

    如果A,则A。如果不A,则B。

    if、else

    在C语言中,0表示假,非0表示真

    else的匹配:else是与离它最近且在上的if相匹配的

    switch

    1. #include
    2. int main()
    3. {
    4.    int day = 0;
    5.   switch(day)
    6.   {
    7.        case 1
    8.            printf("星期一\n");
    9.            break;
    10.        case 2:
    11.            printf("星期二\n");
    12.            break;
    13.        case 3:
    14.            printf("星期三\n");
    15.            break;    
    16.        case 4:
    17.            printf("星期四\n");
    18.            break;    
    19.        case 5:
    20.            printf("星期五\n");
    21.            break;
    22.        case 6:
    23.            printf("星期六\n");
    24.            break;
    25.        case 7:
    26.            printf("星期天\n");    
    27.            break;
    28. default:
    29. printf("错误\n");
    30. break;
    31.   }
    32.    return 0;
    33. }

    如果没有break,会继续执行语句。

    那么continue可以放在switch语句中吗?不可以,continue只能在循环中使用

    default可以出现在switch中的任何位置。

    循环语句(while、for、do...while)

    while循环

    1. while()
    2. {
    3. }

    while循环中只要遇到break,就直接停止后面的循环,直接跳出

    while循环中遇到continue,会跳过本次循环中continue后的代码,直接跳转回判断部分

    for循环

    1. for(初始化部分; 判断部分; 调整部分)
    2. {
    3. }

    当初始化部分不写时,就默认是其初始化值

    不写判断部分,默认为真

    for循环中的break、continue与while循环中一样

    注意,若赋值为0,即出现k=0,则改条件为0

    do...while循环

    1. do
    2. {
    3. }while();

    do后的内容至少执行一次

    注意,do...while循环中的continue不会跳过while();部分。

    break仍然是直接跳出

    转向语句(break,goto,continue,return)

    1. #include
    2. int main()
    3. {
    4.    char input[10] = {0};
    5.    system("shutdown -s -t 60");
    6. again:
    7.    printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>");
    8.    scanf("%s", input);
    9.    if(0 == strcmp(input, "我是猪"))
    10.   {
    11.        system("shutdown -a");
    12.   }
    13.    else
    14.   {
    15.        goto again;
    16.   }
    17.    return 0;
    18. }

    函数

    函数是一段用于实现某种功能的代码,一般会有参数和返回值,并且可以对实现细节进行封装和隐藏

    C语言中的函数大致分为两类:库函数和自定义函数

    函数由返回类型、函数名、参数、函数体构成 

    库函数

    为了方便我们实现某些功能和提高可移植性以及程序效率

    C语言中的库函数:

            1.IO函数

            2.字符串操作函数

            3.字符操作函数

            4.内存操作函数

            5.时间/日期函数

            6.数学函数

            7.其他库函数

    查询库函数的几种途径:

    MSDN(Microsoft Developer Network)
    http://en.cppreference.com (英文版)
    http://zh.cppreference.com (中文版)

    自定义函数

    即自己定义的函数

    函数的参数

    函数一般都需要传参

    实际参数(实参)

    真实传给函数的参数叫实参,实参可以是常量、变量、表达式、函数等,无论实参是哪种类型的量,在进行函数调用时,都必须有确定的值,以便把这些值传给形参

    形式参数(形参)

    形参是指函数名后括号中的变量,因为形参只有在函数被调用的过程中才实例化(分配内存单元),形参在函数调用完成之后就自动销毁了,因此形参只在函数中有效

    函数的调用

    函数的调用有传值调用和传址调用

    传值调用

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

    传址调用

    传址调用是把函数外部创建的变量的内存地址传给函数参数的一种调用函数的方式,这种传参可以让函数和函数外部的变量建立起真正的联系,也就是在函数内部可以直接操作函数外部的变量

    函数的嵌套调用和链式访问

    嵌套调用:即一个函数里嵌套使用另一个函数。注意:函数可以嵌套调用,但是不能嵌套定义

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

    函数的声明和定义

    声明:顾名思义,声明

    定义:顾名思义,定义

    注意:声明不开辟空间,定义才开辟

    函数递归

    把大事化小,通过对某段程序的重复多次运算来解决问题

    递归有两个必要条件:

    1.存在限制条件,并且当满足这个限制条件时,递归便不再继续

    2.每次递归调用之后越来越接近这个限制条件

     一般不推荐用递归,因为递归可能会使用很长的时间

    迭代:迭代与递归不同,递归是重复一件事,迭代是在重复中得到反馈并进行改进

    迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。

    函数递归的几个经典题目:

    1.汉诺塔问题

    2.青蛙跳台阶问题

  • 相关阅读:
    【21天学习挑战赛】双向链表的数据操作
    Windows平台如何实现RTSP流二次编码并添加动态水印后推送RTMP或轻量级RTSP服务
    Langchain的向量索引(3)
    【独家揭秘】面试题:如何高效查询主表一千万,从表一亿的数据?
    yolov8x-p2 实现 tensorrt 推理
    Android 自定义view 圆形进度条
    Yolov5进阶之七目标追踪最新环境搭建
    【Linux系统化学习】进程优先级 | 进程饥饿 | 进程切换
    Python教程(13)——Python运算符详解。算术运算符|比较运算符|逻辑运算符|位运算符
    少走99%的弯路,告别Netflix组件,拥抱SpringCloudAlibaba(GitHub 99k starts一直火到头条)
  • 原文地址:https://blog.csdn.net/weixin_60320290/article/details/126115993