c语言进阶2-变量的做用域与无参函数

1、       什么是函数

函数是具备特定功能的模块。能够说一个完整的程序实际上是由多个函数共同完成的。C语言的所有工做都是由程式各样的函数完成的,因此也把C语言称为函数式语言。使用模块化设计可能 使程序的层次结构清晰,全球程序的编写、阅读、调试。windows

2、       函数的分类

就像你同样,说你从性别的角度分属于男仍是女?若是从肤色的角度分你是属于黄种人仍是白种人?若是从高低的角度分你是属于高的,仍是低的呢?因此说同一类事物能够从不一样的角度进行分类。函数也是同样从定义的角度分为库函数和自定义函数、从传递参数的角度分为有参函数与无参函数、从返回值的角度分为有返回值函数与无返回值函数。各类函数的区分请参照以下:模块化

  1. 1.   库函数:系统已经定义好的函数,能够直接使用。如strlen,strcmp
  2. 2.   自定义函数:根据须要手动所写的函数。
  3. 3.   有参函数:函数头后的括号里有内容的函数。
  4. 4.   无参函数:函数头后括号里无内容的函数。
  5. 5.   返回值函数:函数最后有return语句的函数。
  6. 6.   无返回值函数:函数里没有return语句的函数。

3、       变量的应用

变量的有效做用范围称为变量的做用域。按照有效做用范围能够把变量分为全局变量和局部变量两种。函数

  1. 1.   全局变量

全局变量是在函数外部定义的变量,也称全程变量,或外部变量。全局变量的做用域是从变量定义的位置开始,到所在源文件结束。全局变量的操做范围,属于其定义所在的源程序文件中。以下图所示:spa

 

如上图所示a、b、x、y、m、n这六个变量做用不一样,因此若是用全局变量,那么咱们最好使用a、b这两个变量定义时的方法,写在全部函数的上头。设计

  1. 2.   局部变量

局部变量也称为内部变量,指在函数内部定义的变量。或一对花括号“{}”里的变量,只在其定义的范围内起做用,范围以外没法访问。调试

举例:code

void fun(int a,int b)          

{ 

int x,y;

}

 

其中变量a、b、x、y都是局部变量,做用范围就是函数fun内。blog

4、       函数思惟

经过下面程序段咱们来看下函数思惟的过程,以及函数的定义和使用过程。内存

/* Note:Your choice is C IDE */

#include "stdio.h"

 

void check(int a);//声明函数

 

void main()

{

    int num;

    printf("请输入一个数:");

    scanf("%d",&num);

    check(num);

}

 

void check(int a)     // 形参

{

   if(a%3==0&&a%4==0)   //与   且  都 而且    

    printf("%d是3与4的倍数\n",num);     //一名话可加可不加{}

    else

    printf("%d不是3与4的倍数\n",num);

}

 

注意:参数传递作用域

1:只能实参传给形参

2:参数之间用逗号隔开

3:传递时个数要一致,类型要一致

  1. 1.   函数的说明

在全局上自定义函数应该在主函数以前有一个说明,目的是告诉系统在主函数中要用到一个自定义函数,被主函数直接调用或间接调用。说明的时候就要写清楚这个函数的数据类型是什么,自变量有几个,都是什么数据类型的。

如:语句  void check(int a);

声明方式是:函数头+;

  1. 2.   无参无返回值函数的定义

函数的定义的格式为:

void  函数名( )

{

    说明部分;

    语句部分;

}

 

  1. 3.   函数的调用

无参无返回函数的调用格式是经过函数名来调用的.

无参函数的调用格式为:函数名();

  1. 4.   扩展内容:形式参数和实在参数

针对案例当中须要咱们理解形式参数与实在参数说明以下:

(1)  形式参数是在定义函数时放在函数名称以后的括号中的参数。在函数未被调用时,系统不对形式参数分配内存单元。在函数被调用时,系统会马上给形式参数分配内存单元;调用结束后,再释放掉形式参数所占有的内存单元。所以,形式参数属于局部变量,其做用域限定在它所在的函数体内。这就不难理解在定义函数时为何要指定形参变量的数据类型了。

(2)  实在参数是一个具备肯定值的表达式。函数在调用时,要将实在参数赋给形参变量。好比代码中if(check(num)==1)调用子函数,这时num为实在参数,在这以前变量num是被赋过具体值的。在函数被调用后,系统会把num的值赋给形式参数a.

注:实在参数的个数及类型应与形式参数一致,赋值时多个参数之间的先后对应关系不变。

心形代码

/* Note:Your choice is C IDE */
#include "stdio.h"
#include "stdlib.h"
#include "windows.h"
 int i,j;
void gotoxy(int x,int y);
int color(int c);
void xin(){
     color(12);
   gotoxy(28,8);
   printf("");//8行28列
   Sleep(500);
   gotoxy(26,7);
   printf("");
    Sleep(500);
   gotoxy(24,6);
   printf("");
    Sleep(500);
   gotoxy(22,6);
   printf("");
    Sleep(500);
   gotoxy(20,7);
   printf("");
    Sleep(500);
   gotoxy(20,8);
   printf("");
    Sleep(500);
   gotoxy(20,9);
   printf("");
    Sleep(500);
   gotoxy(22,10);
   printf("");
    Sleep(500);
   gotoxy(24,11);
   printf("");
    Sleep(500);
   gotoxy(26,12);
   printf("");
    Sleep(500);
   gotoxy(28,13);
   printf("");
   Sleep(500);
   gotoxy(30,12);
   printf("");
       Sleep(500);
   gotoxy(32,11);
   printf("");
   Sleep(500);
   gotoxy(34,10);
   printf("");
   Sleep(500);
   gotoxy(36,9);
   printf("");
   Sleep(500);
   gotoxy(36,8);
   printf("");
    Sleep(500);
   gotoxy(36,7);
   printf("");
    Sleep(500);
   gotoxy(34,6);
   printf("");
    Sleep(500);
   gotoxy(32,6);
   printf("");
    Sleep(500);
   gotoxy(30,7);
   printf("");
       for(i=7;i<10;i++){
   gotoxy(22,i);
   printf("");
    }
     for(i=7;i<11;i++){
    
   gotoxy(24,i);
   printf("");
     }
      for(i=8;i<12;i++){
    
   gotoxy(26,i);
   printf("");
      }
       for(i=9;i<13;i++){     
   gotoxy(28,i);
   printf("");
       }
       for(i=7;i<10;i++){    
   gotoxy(34,i);
   printf("");
    }
     for(i=7;i<11;i++){
   gotoxy(32,i);
   printf("");
     }
      for(i=8;i<12;i++){
   gotoxy(30,i);
   printf("");
      }
    }
void menu(){
    for(i=0;i<58;i+=2){
        gotoxy(i,1);
        color(5);
        printf("");
        gotoxy(i,26);
        printf("");
    }
    for(i=0;i<26;i++){
        gotoxy(0,i);
        printf("");
        gotoxy(56,i);
        printf("");
    }
    for(i=2;i<56;i+=2){
        for(j=2;j<26;j++){
            gotoxy(i,j);
            color(3);
            printf("");
            }
    }
}
void people(){
    color(12);
    for(i=12;i<16;i++){
    gotoxy(6,i);
    printf("");
    }
    gotoxy(8,12);
    printf("");
    gotoxy(4,12);
    printf("");
    gotoxy(8,15);
    printf("");
    gotoxy(4,15);
    printf("");
    gotoxy(14,16);
    printf("");
    gotoxy(14,15);
    printf("");
    gotoxy(16,14);
    printf("");
    gotoxy(18,15);
    printf("");
    gotoxy(18,16);
    printf("");
    gotoxy(16,17);
    printf("");
    gotoxy(18,17);
    printf("");
    gotoxy(14,17);
    printf("");
    gotoxy(18,14);
    printf("");
    gotoxy(14,14);
    printf("");
        gotoxy(26,16);
    printf("");
    gotoxy(26,17);
    printf("");
    gotoxy(28,18);
    printf("");
    gotoxy(30,17);
    printf("");
    gotoxy(30,16);
    printf("");
        /*gotoxy(36,13);
    printf("■");*/
    gotoxy(38,13);
    printf("");
    gotoxy(36,14);
    printf("");
    gotoxy(40,14);
    printf("");
        gotoxy(40,15);
    printf("");
    gotoxy(38,15);
    printf("");
        gotoxy(36,15);
    printf("");
    gotoxy(36,16);
    printf("");
        /*gotoxy(36,17);
    printf("■");*/
    gotoxy(38,17);
    printf("");
    gotoxy(40,17);
    printf("");
    //y
    gotoxy(46,15);
    printf("");
    gotoxy(46,14);
    printf("");
    gotoxy(48,15);
    printf("");
    gotoxy(50,15);
    printf("");
    gotoxy(50,14);
    printf("");
    gotoxy(50,16);
    printf("");
    gotoxy(50,17);
    printf("");
    gotoxy(46,17);
    printf("");
    gotoxy(48,17);
    printf("");
    
    }
void gotoxy(int x,int y){
    COORD c;
    c.X=x;
    c.Y=y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}
int color(int c){
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),c);
    return 0;
    }
void main()
{
   
    system ( "mode con cols=60 lines=28" );
    system("title 原来是由于");
    menu();
    gotoxy(28,0);
    system("pause");
    xin();
    for(i=24;i>=13;i--){
       Sleep(300);
    
    gotoxy(28,i);
    color(12);
    printf("");
   gotoxy(28,i+1);
    color(3);
    printf("");
    
       }
   /*system("cls");*/
   /*menu();*/
   people();
   
   
   gotoxy(10,0);
   system("pause");
}
相关文章
相关标签/搜索