菜鸟之路-03

1)全局变量和局部变量的程序代码

#include <stdio.h>

int  a=10;//全局变量,在所有的函数内都能被使用,等程序结束后值才会被释放

void test(){

    

   printf("%d\n",a);

   a++;

}

int main(int argc,const char * argv[]) {

   /* int   a=30; 定义了不同的量

    test();  10

    test();  11

    

    test(); 12

    

    test(); 13

    

    */

    a=30;//暂时改变a的值局部变量,在所在代码块{}内使用,当执行完代码块后值会被释放。当和全局变量重名时,那么在它这个函数里,会暂时遮盖全局变量。,结果30313233但代码块结束后,a的值释放。

   test(); //30

   test(); //31


   test(); //32


   test();//33


 

   return 0;

}

2)有参和无参

#include <stdio.h>

void max(){

//  无参,函数名max,()参数列表没有可写可不写,可以写不同类型的变量用','隔开

    


}

//int max(){  //(不能定义同名的函数体)

//有参 返回值类型是int 类型


// 形参被定义后不会立马被分配内存,当实参赋值给形参的时候才会被分配内存空间。

//}




//实参和形参之间的转换:

//  在调用函数之前,实参是个确定的值

//  把实参的值赋值给形参

//  实参和形参的个数及类型要一致,防止精度丢失。

int sum(int x,int y){

    x=10,y=20;//形参的值在函数内可以被修改,但是不会修改主调函数中实参的数据。

    return x+y; // return 后面可以加括号也可以加不括号,结果是一样的。可以是常量,变量,表达式。return返回值要和返回类型要一致,如果类型不一致的话,要以函数定义的类型一致。

    

    

}

//  调用之前 形参定义的变量值是不会被改变,即使实参的值和形参定义的值不一样,打印的结果如代码所示。



int main(int argc,const char * argv[]) {

   int d=sum(10,5);

    printf("%d\n",d);

   return 0;

}


3)函数的声明及调用

#include <stdio.h>

void test(){}



void test1(int num){}

void test1();//声明函数的时候,形参名可以省略



void test4(){}

void test4(){}//函数不允许重名



void test3(){


    void test9(){}//这样函数会报错,因为不能在同一个函数里继续定义一个新的函数。




}





void test2(); //函数的声明可以写n

void test2();

void test2();

void test2();


int main(int argc,const char * argv[]) {//函数内可以声明调用其它函数。

//    test();//被调用函数可以写在任何位置,但是函数的调用必须在调用之前声明函数

//    return 0;

   void test2();

    test2();//告诉编译器,test2函数是有的,尽管编译,调用函数可以写在最后,但void test2();一定要写在调用之前来告诉编译器是有的。

 4)带参数函数需要注意的地方

带返回值参数需要注意的地方:1.如果函数有返回值,我可以接收,也可以不接收,不管接没接收函数都有执行

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

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

                        3.当函数需要返回类型的时候,需要每条分支都有返回值,不然会报错。如下面的代码。

                        4.但返回值类型是int时,可以省略int  但不介意使用,在Mac中兼容,但不符合C-99

                         5.返回值类型确定了,可以返回不同类型的数据嘛?

                          基本数据类型可以,但不推荐这么做。

 */


#include <stdio.h>

int  test(){

  int num;

   if (num>0) {

        printf("c");

       return 1;

    }elseif(num<=0){

       printf("w");

       return 2;

    }//else {    return 0;} 如果不加这条语句那么会报错


}

int main(int argc,const char * argv[]) {

      test();

   return 0;

}


   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值