初识函数------------------------------------

一. 函数的组成

返回值类型 函数名 ( 形参,形参,....... )

{

函数体

return 数据值;

//注意返回数据的类型要和返回值的类型相匹配,返回值类型为void,可省 return 或者return;

}

int a(int a, int b)

{

return a + b;

}

void a2(int a, int b)

{

printf("a+b的和为%d", a + b); //1.return;2.不写

}

二 函数的细节

一个程序中只能有一个主函数c语言中程序的入口是main函数,main函数可以在任意位置,main函数前对其所调用函数进行生命或包含其被调用函数的头文件

函数形参可以与实参名相同,因为每一次函数调用都会在栈中开辟空间,函数的作用域都是不同的,形参和实参是两个不同的变量,但它的值相同,可以说是拷贝的值

函数中尽量不使用全局变量,因为会改变全局变量的值,同时函数应 高内聚低耦合即:函数体内部实现修改了,尽量不要对外部产生影响,否则:代码不方便维护

函数的参数越少越好,太多的话容易混淆,使用函数时,必须搞懂每个参数

谁申请的谁维护谁释放,否则如果交给外部使用者释放,外部使用者可能不知道或者忘记,就会造成资源泄漏

函数必须先声明后定义,才可以使用

二.函数调用和定义

形参按照值的方式传递,将来形参就是实参的一份临时拷贝,修改形参不会影响外部的实参

形参按照指针方式传递,将来形参就是实参地址的一份拷贝,形参指向的是实参,修改形参指针指向的内容,  就是在操作实参

C C语言中,函数不能嵌套定义

函数可以嵌套调用,

C语言中常见的函数

printf()它的返回值为字符的个数

scanf()如果读取成功返回参数的个数,读取失败则返回-1

getchar()字符处理函数,返回值为字符对应的ASCII值

putchar()打印字符的函数

scanf函数和getchar函数会涉及到缓存区的问题,如果涉及多个scanf函数使用时,可以用getchar函数配合while循环把缓存区的数据取完,这样等下次scanf就可以等待用户输入指定的数据,而不直接跳过输入直接读取缓存区剩余的下个数据。

int main(

 

char pass[] = { 0 };
        printf("请输入密码");
        scanf_s("%c",pass);
        while (getchar() != '\n')
        {

            ;
        }

        printf("请确认密码");
        char  input = 0;
        scanf_s("%d", &input);
        //getchar();
        /*while (getchar() != '\n')
        {

            ;
        }*/
        scanf_s("%d", &input);
        if (*pass == getchar())
            printf("密码正确");
        else
            printf("密码错误");

    
 

    return 0;
}

 


 

strlen()函数是计算字符的个数,遇到字符'/0'才结束,计算个数不包括'/0'。注意:sizeof不是函数是运算内存大小的运算符,在使用时如果计算类型的大小要加括号 (int),其它的可加或者不加,不过最好统一加括号。

函数的使用(必须先声明后使用)

如果不是自己定义的函数,又要使用函数必须调用头文件,可以理解为函数声明与定义头文件已经帮我们写好了,直接使用就可以了。

如果自定义的函数写在main函数后面 必须要在main函数之前进行函数申明,然后才可以使用

如果函数定义在main函数之前,相当于进行了函数声明的同时又写了函数定义

(如果有错误可以指出,我是初学者,可以互相学习)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值