zoukankan      html  css  js  c++  java
  • 假期C语言学习笔记4

    函数

    • 经过三个星期的慕课的学习大致上学会了C的一些基本知识,在经过三个星期的C语言课本实践将书上的例题,课后练习实践挨个做了一遍,终于到了函数这一章。时间过的好快呀。
    • 函数分为库函数和自定义函数;有返回值(
    • 和没有返回值
    • 变量有实参(全局变量)形参(局部变量)

    函数设计

    • 一般某种功能使用超过三次以上,考虑将其写成函数
    • 函数的设计要遵循“信息隐藏”的指导思想即把函数有关的代码和数据对程序的其他部分隐藏起来。

    基本原则

    1. 函数规模要小,尽量控制在50行代码以内,这样的函数比代码更长的函数更容易维护,出错几率更小。
    2. 函数功能要单一,不要设计有多种用途的函数
    3. 每个函数只有一个入口和一个出口,尽量不要使用全局变量向函数传递参数。
    4. 函数接口中要清楚的定义函数的行为,包括入口参数,出口参数,返回状态,异常处理等;让调用者清楚函数所能进行的操作及操作是否操作成功,应尽可能的多考虑一些可能出错的情况,定义好接口后不要轻易改动。
    5. 在函数入口处对参数的有效性进行检查。
    6. 在执行某些敏感性操作时(如除法,开方,取对数,赋值,函数参数传递等)尽可能多考虑一些出错情况,定义好函数接口后轻易不要改动。
    7. 不能认为调用一个函数总会成功,要考虑到一个函数调用失败后该如何处理。
    8. 对于与屏幕显示无关的函数,通常需要通过返回值来报告错误,因此调用函数时要检验函数的返回值,以判断函数是否调用成功;对于与屏幕显示有关的函数,函数要负责相应的错误处理。错误代码一般放在函数末尾,对于某些错误还要设计专门的错误处理函数。
    9. 由于并非所有的编译器都能捕获实参与形参不匹配的错误,所以程序设计人员在函数调用时应确保实参类型与形参类型相匹配,在程序开头进行函数原型声明,并将函数参数的类型书写完整(没有参数时用void声明)有助于编译器进行匹配检查
    10. 当函数需要返回值时,应确保函数所有分支都有返回值,函数没有返回值时用void声明

    为了更深刻理解函数的返回值问题,今天写练习的时候,特意写了下面这个代码

    #include <stdio.h>
    #include <stdlib.h>
    int pd_Ss(int n)
    {
        int i;
        for(i=1;i<n;i++)
        {
            if(n%i==0)
            {
                return i;
    
            }
    
        }
    
    }
    int main()
    {
        int m,result;
        scanf("%d",&m);
        result=pd_Ss(m);
        printf("因子有%d",result);
    
    }
    
    
    • 事实证明函数的返回值只能有一个!

    三目运算符

    • 在做数组这一章练习这一章练习题目的时候,我使用的是
    int Average(int score[],int n)
    {
        int i;
        int sum=0;
        for(i=0;i<n;i++)
        {
            sum+=score[i];
        }
        if(n>0) return sum/n;
        else return -1;
    }
    
    • 书上参考代码
    int Average(int score[],int n)
    {
        int i;
        int sum=0;
        for(i=0;i<n;i++)
        {
            sum+=score[i];
        }
        return n>0?sum/n:-1;
        
     }
    
    

    -发现了三目运算符这个好东西,在网上寻找答案。找到一个比较好理解的解释:"(a<b)?a:b"是一个"条件表达式",它是这样执行的:如果a<b为真,则表达式取a值,否则取b值.
    这相当于一个判断语句。

    感想

    • 在这段时间的踏踏实实敲代码中,明确感受到了自己的不足和自己的进步,我并不喜欢抄书上的内容,但是这一部分有几点都是我容易错误的,感觉是一个非常重要的部分需要记录下来,在电脑上再敲一遍有助于理解和记忆,所以我将《C语言程序设计》(第三版)中的这一部分抄写下来。
  • 相关阅读:
    Eclipse / android studio 添加第三方jar包 步骤
    Android checkbox 自定义点击效果
    Android 程序打包和安装过程
    Android 基础
    (转)Genymotion安装virtual device的“unable to create virtual device, Server returned Http status code 0”的解决方法
    (转)eclipse 导入Android 项目 步骤
    微信开放平台注册 步骤
    Android Studio 初级安装
    数组
    作用域问题代码
  • 原文地址:https://www.cnblogs.com/hpl20155329/p/7194101.html
Copyright © 2011-2022 走看看