函数的补充

来源:互联网 发布:张国荣最冷一天知乎 编辑:程序博客网 时间:2024/06/05 15:30


带参数的函数(值传递)和有返回值的参数



1.

 函数的参数:

        语法:

            void  函数名(类型形参名){

 

                函数体;

            }

 

 

 函数的参数可以有多个,如果有多个的时候用,隔开

 

        例:

            void  函数名(类型形参名1,类型形参名2,………………){

 

                函数体;

            }

 

 

 注意:1.函数如果有参数,那么你调用的时候必须给它传参数,而且要按照对应的顺序和个数去传

 

      2.函数的形参就是函数括号里面定义的变量,就相当于在函数内部定义了这个变量的局部变量,所以不能在函数内再定义同名的变量

 

      3.调用函数的时候,给形参传值,就相当于给形参进行赋值,所以如果是基本数据类型不匹配的时候会发生强制转换

 



#include <stdio.h>/** *  函数的参数,这个参数需要一个int类型的数字 * */void isOuNumber(int num){//int num就是一个局部变量            if (num % 2 == 0) {                printf("%d是偶数\n",num);            }else{                printf("%d是奇数\n",num);    }    }//写一个计算两个数之和的函数void getSum(int num1,int num2){        printf("%d+%d=%d\n",num1,num2,num1+num2);}void test(char ch,int num2){        printf("%c  %d\n",ch,num2);}int main(int argc, const char * argv[]) {           //    isOuNumber();//因为你的函数是一个有参数的函数,那么不能直接调用      isOuNumber(21);   //    getSum(10,20);        test('a',90.3);        return 0;}





2.

有一个函数,可以帮我们计算两个数之和

 

    我是想你帮我算好,让我直接可以拿到结果,而不是你帮我打印出来

 

 那么,问题来了?怎么样拿到结果

 

    就需要用到函数的返回值!

 

 语法:

     返回值类型 函数名(参数列表){

 

        函数体;

 

        return 返回值;

    }

 

 

 void意思:空,就代表不需要返回值

 

 

 函数要有返回值,就在函数定义的时候就在返回值类型写上你要返回的类型


#include <stdlib.h>int getSum(int num1,int num2){            int sum = num1 + num2;    //    printf("%d\n",sum);    return sum;}int main(int argc, const char * argv[]) {        //    int abcd = getSum(15,20);//    //    printf("abcd=%d\n",abcd);    //    int sum2 = sum + 30;    //    printf("%d\n",getSum(15, 20));        //系统提供的函数带的有返回值?//    int num = arc4random_uniform(10); int  res=   getSum(39, 28);    printf("%d\n",res);    printf("%d\n", arc4random_uniform(10));            printf("程序结束了\n");        return 0;}



 带返回值的函数需要注意的地方:

 

            1.如果函数有返回值,我可以接收,也可以不接收,不管接没接收函数都有执行

        

            2.接收返回值的时候,需不需要用同类型的变量来接收函数的返回值类型

                        基本数据里面,可以不用同类型,但是会发生强制转换

 

              推荐以后不管怎么样,用来接收返回值的变量一定要与函数的返回值类型一致

 

            3.返回值类型确定了,那么能返回不同类型的数据吗?

                     基本数据类型中可以

                     也不推荐这么做

 

            4.当函数需要返回值的时候,必须保证每条分支都有返回值,否则会报错

 



 3.函数的声明:


 编译器是从上往下依次编译,当编译到你的函数的时候,还没有你实现的函数,所以会报错

 

 所以如果想要函数不报错,就需要声明函数


    声明的意思:

        告诉编译器,我有这个函数,你放心的编译就行了

 

    声明的语法:

            返回值类型函数名(参数列表);

 

        例:void test();

 

    小技巧:

        直接对着函数头复制,然后在后面删掉大括号,加上分号就完了

 

 

 声明几个注意事项:

 

        1.函数的声明可以写在任意位置,但是一定要写在调用这个函数之前

        2.函数的声明可以写N

        3.声明函数的时候,形参名可以省略

        4.如果函数的返回值是int,也可以不用声明(仅限Mac下),建议大家无论什么函数都先声明

 

 4.注意点:

函数需要注意的地方:

        1.函数内不允许定义新的函数

        2.函数内可以声明其他函数

        3.函数可以调用其他的函数

        4.函数不允许重名

 

 



#include <stdio.h>void test(){        printf("test\n");    void test2();        test2();}void test2(){        printf("test2\n");}int main(int argc, const char * argv[]) {        test();            return 0;} 










0 0
原创粉丝点击