登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[学习笔记] C语言函数拙见

[复制链接]
发表于 2018-1-25 21:55:51 | 显示全部楼层 |阅读模式
学习笔记
学习科目: C语言
学习安排: 熟练掌握C语言
开始时间: 2018-01-25
结束时间:

输入参数————>函数————>回传值

函数定义
回传值的型别 函数名(参数型别 参数名称){
        程式片段
        return 回传值;
}
函数是一块代码,接受0个或多个参数,
做一件事情,并返回零个或一个值
主函数内不能定义函数,主函数可以调用函数

如:
#include<stdio.h>

int f(int x){
    return x+3;
}

int main(){
    printf("%d\n",f(4));
    return 0;
}
结果就是7
这和数学的函数f(x)=x+3 带入x=4 的结果是一致的
C语言的函数和数学的函数有一定的相似性,又有不同
同一个函数只能定义一次,但可以调用很多次

被调用的函数要写在被调用之前,
如果要写在被调用之后就必须在开始写函数宣告
如:
#include<stdio.h>
int f(int);

int main(){
    printf("%d\n",f(4));
    return 0;
}

int f(int x){
    return x+3;
}

C语言标准函数库

C语言内建的函数,主要提供
字符串处理   <string.h>
数学运算     <math.h>//sqet(求平方更),ceil(无条件进位)。abs(绝对值)
输入输出处理 <stdio.h>
记忆体管理   <stdlib.h>
与其他系统服务的相关功能

使用之前只需要函数宣告,调用头文件
如:
#include<stdio.h>

函数的返回值
#include<stdio.h>

int main()
{
    printf("%d\n",printf("hello world!\n"));
    return 0;
}
这个程式最终的结果是会印出
hello world!
13

因为函数都会有返回值,printf("hello world!\n")的返回值是13
所以最终会印出13
而printf("%d\n",printf("hello world!\n"));的返回值是3却没有被印出
一般在使用printf时我们都只使用它的副作用,也就是把字符串印在屏幕上
一般不使用它的返回值

没有返回值的函数
void 函数名(参数表)
不能使用带值的 return
可以没有 return
调用的时候不能做返回值的赋值
void f()表示参数的型是未知的
void f(void)表示没有参数
对于 int main()也可以写为 int main(void)但一定要返回0,
返回除0以外的任何数都是错误的


本地变量的规则
本地变量是定义在块内的
可以定义在函数的块内
也可以随意拉一个大括弧来定义变量
运行这个块前这个变量不存在,离开这个块中变量消失
在块外定义的变量在块里面这个变量依然成立

下面是两个数求最大值的使用函数的练习
#include<stdio.h>
int max2(int a,int b);

int main()
{
    int a,b;
    printf("please enter two integer:");
    scanf("%d%d",&a,&b);
    printf("Max is %d\n",max2(a,b));

    return 0;
}

int max2(int a,int b){
    int max;
    if(a>=b){
        max=a;
    }else{
        max=b;
    }
    return max;
}
对于三个数求最大值可以使用max2
int max3(int a,int b,int c){
         int max=max2(max2(a,b),c)
}

下面是一个关于变量使用的例子
#include<stdio.h>
int i=1;

int main()
{
    printf("%d",i);//印出的是第二行的i
    int i=2;
    printf("%d",i);//印出的是第七行的i
    {
        printf("%d",i);//印出的是第七行的i
        int i=3;
        printf("%d",i);//印出的是第11行的i
    }
    printf("%d",i);//印出的是第七行的i

    return 0;
}


好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表