黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
五 变量的作用域和储存类型
01 变量的作用域是指该变量有效地区域,C语言中得变量分为局部变量和全局变量。
02 局部变量:
*局部变量的作用域仅限于定义它的代码块内,离开代码块内便失去作用。
*形参只有在函数内有效,其也属于局域变量,作用域被限定在定义它的函数内部。
*当代码块处于嵌套状态时,如果内层代码块有一个变量的名字与外层代码块相同,则内层的变量就将屏蔽外层的变量。
// 利用全局变量写一个函数,求某班级学生成绩的最高分,最低分和平均分 #include <stdio.h> double max=0,min=100; // 定义全局变量 double average(int m);// 函数声明 int main() { int n; double ave; printf("请输入人数:\n");// 输入班级人数 scanf("%d",&n); // 接受班级人数 ave = average(n); // 调用函数 printf("ave=%f,max=%f,min=%f\n",ave,max,min); } double average(int m) { int i; double s,ave,sum; for (i=1; i<=m; i++) { scanf("%lf",&s); if (s>max) { max = s; } if (s<min) { min = s; } sum = sum+s; } ave =sum/m; return ave; }
03 全局变量
01 定义在函数外部的变量称为全局变量,它定义在函数外边,不属于任何函数和代码块,而属于整个源文件。其有效位置从定义变量的位置开始到源文件结束。
02 static静态局部变量,其在整个源程序中都存在,系统自动赋值为0,可以保留上次运行结果。
03 extern 外部变量,在同一个文件内,为了使全局变量在定义点之前的函数中也能使用,在函数中用extern加以声明。
当一个源程序由若干源文件组成时,在一个源文件中定义的外部变量可以在其他源文件中使用extern进行声明,使其在其他源文件中可以使用。
// 编写一个函数求圆的面积 #include <stdio.h> double area(double r) { extern double P; // 外部声明 return P*r*r; // 面积公式 } double P = 3.14; // 定义全局变量P并初始化,自此作用域往下有效 int main() { double r; printf("请输入圆的半径:\n"); scanf("%lf",&r); printf("area=%f\n",area(r)); }
时间: 2024-10-10 15:25:22