变量分类c语言根据作用域,c语言进阶2-变量的作用域与无参函数

一、       什么是函数

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

二、       函数的分类

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

1.库函数:系统已经定义好的函数,可以直接使用。如strlen,strcmp等

2.自定义函数:根据需要手动所写的函数。

3.有参函数:函数头后的括号里有内容的函数。

4.无参函数:函数头后括号里无内容的函数。

5.返回值函数:函数最后有return语句的函数。

6.无返回值函数:函数里没有return语句的函数。

三、       变量的应用

变量的有效作用范围称为变量的作用域。按照有效作用范围可以把变量分为全局变量和局部变量两种。

1.全局变量

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

20190715190954550250.png

如上图所示a、b、x、y、m、n这六个变量作用不同,所以如果用全局变量,那么我们最好使用a、b这两个变量定义时的方法,写在所有函数的上头。

2.局部变量

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

举例:

void fun(int a,intb)

{intx,y;

}

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

四、       函数思维

通过下面程序段我们来看下函数思维的过程,以及函数的定义和使用过程。

/*Note:Your choice is C IDE*/#include"stdio.h"

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

voidmain()

{intnum;

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

scanf("%d",&num);

check(num);

}void check(int a) //形参

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

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

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

}

注意:参数传递

1:只能实参传给形参

2:参数之间用逗号隔开

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

1.函数的说明

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

如:语句  void check(int a);

声明方式是:函数头+;

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

函数的定义的格式为:

void  函数名( )

{

说明部分;

语句部分;

}

3.函数的调用

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

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

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"

inti,j;void gotoxy(int x,inty);int color(intc);voidxin(){

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("■");

}

}voidmenu(){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("■");

}

}

}voidpeople(){

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,inty){

COORD c;

c.X=x;

c.Y=y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);

}int color(intc){

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),c);return 0;

}voidmain()

{

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");

}

原文:https://www.cnblogs.com/TimVerion/p/11190575.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值