电脑网站设计页面,网站建设中轩网怎么样,青海贸易网站建设公司,甜品网站设计与实现毕业设计C语言中的变量#xff0c;按作用域范围可分为两种#xff0c;即局部变量和全局变量。 局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内#xff0c; 离开该函数后再使用这种变量是非法的。在复合语句中也可定义变量#xff0c;其作用域只在复… C语言中的变量按作用域范围可分为两种即局部变量和全局变量。 局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内 离开该函数后再使用这种变量是非法的。在复合语句中也可定义变量其作用域只在复合语句范围内。 全局变量也称为外部变量它是在函数外部定义的变量。它不属于哪一个函数它属于一个源程序文件。其作用域是整个源程序。 C语言根据变量的生存周期来划分可以分为静态存储方式和动态存储方式。 静态存储方式是指在程序运行期间分配固定的存储空间的方式。静态存储区中存放了在整个程序执行过程中都存在的变量如全局变量。 动态存储方式是指在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储区中存放的变量是根据程序运行的需要而建立和释放的通常包括函数形式参数自动变量函数调用时的现场保护和返回地址等。 C语言中存储类别又分为四类 自动auto、静态static、寄存器的register、外部的extern。 1、用关键字auto定义的变量为自动变量auto可以省略auto不写则隐含定为“自动存储类别”属于动态存储方式。 2、用static修饰的为静态变量如果定义在函数内部的称之为静态局部变量如果定义在函数外部称之为静态外部变量。如下为静态局部变量 利用静态局部变量实现依次打印 #include stdio.h void fn() { static int x 0 ; x ; printf(fn: x%dn,x); } int main() { int i ; for(i0;i10;i) { fn(); } return 0; } 注意静态局部变量属于静态存储类别在静态存储区内分配存储单元在程序整个运行期间都不释放静态局部变量在编译时赋初值即只赋初值一次如果在定义局部变量时不赋初值的话则对静态局部变量来说编译时自动赋初值0对数值型变量或空字符对字符变量。 3、为了提高效率C语言允许将局部变量得值放在CPU中的寄存器中这种变量叫“寄存器变量”用关键字register作声明。例 void fn() { register int i; } 注意只有局部自动变量和形式参数可以作为寄存器变量一个计算机系统中的寄存器数目有限不能定义任意多个寄存器变量局部静态变量不能定义为寄存器变量。 4、用extern声明的的变量是外部变量外部变量的意义是某函数可以调用在该函数之后定义的变量。如 #include stdio.h int main() { extern int x ; //声明使用外部变量 printf(extern x%dn,x); return 0 ; } int x 100; //外部变量 谓静态函数形式为 static [数据类型] 函数名[参数] static限定该函数只能在其所处的源文件中使用因此在不同文件中出现相同的函数名称的内部函数是没有问题的。 外部函数由extern关键字来定义形式为 extern [数据类型] 函数名([参数]) C语言规定在没有指定函数的作用范围时系统会默认认为是外部函数因此当需要定义外部函数时extern也可以省略。 外部函数练习 test.c #include stdio.hvoid printLine();static void say(){printLine();printf(I love imoocn);printf(good good study!n);printf(day day up!n);printLine();}hello.c#include stdio.h#include test.c //引用test.c文件extern void printLine() //这里定义的方法对吗{ printf(**************n); }int main(){ say(); return 0;}对于hello.c来说直接引入了test.c文件。那么就可以调用testc中的static方法say()而对于test.c并没有引入可以通过声明来调用另一个源文件中暴露出来的方法。 #include stdio.h void printLine() { printf(**************n); } int main() { printLine(); printf(I love imoocn); printf(good good study!n); printf(day day up!n); printLine(); return 0; } 综合练习 北京市出租车打车计费规则如下 每公里单价计费2.3元起步价13元(包含3公里)晚上23点(含)至次日凌晨5点(不含)打车每公里单价计费加收20%。每次乘车加收1元钱的燃油附加税。 小明每天上下班都要打车公司和家的距离为12公里上午上班时间为9点下午下班时间为6点。请编写一个小程序计算小明每天打车的总费用。 起步价13超出3公里每公里计费2.3元23-5点*1.2每次加1元附加税。 #include stdio.h float taxifee(int clock,int miles) //创建函数int clock,int miles { float money; if(miles3) { money14; printf(费用为14n); } else { if(clock23 || clock5) { money1312.3*(miles-3)*1.2; printf(夜间车费为%fn,money); } else { money1312.3*(miles-3); printf(日间车费为%fn,money); } } return money; //递归money累加变量值money } int main() { printf(打的总费用%.1fn,taxifee(9,12)taxifee(18,12)); return 0; }