经验技巧3-4 巧用外部变量.docxVIP

  • 6
  • 0
  • 约小于1千字
  • 约 2页
  • 2021-09-30 发布于四川
  • 举报
经验技巧3-4 巧用外部变量 在编写C语言程序时,如果不是特别需要的地方尽量不要使用外部变量,而是使用动态变量。这是因为动态变量只有在使用它时,系统才为其分配内存空间,使用结束立即释放,而外部变量在编译时就分配了存储空间,在整个程序的执行过程中都占用内存;另外,外部变量可以为多个函数使用,每个函数都可能改变外部变量的值,使我们难以清楚的判断某一时刻外部变量的值是多少,这就降低程序的可读性。 当然,我们也可以利用外部变量能为多个函数使用特点,解决某类实际问题。由于一个函数最多有一个返回值,所以当一个实际问题需要有多个结果时,目前(在没有学习数组、指针之前)就只能编写多个函数(像例3-3)来实现,这将产生许多重复代码,也很麻烦。在现有知识的情况下,我们可以利用外部变量来解决这类问题。 【示例】编写程序,求一元二次方程ax2+bx+c=0(a≠0)的两个实数根。假设给定的一元二次方程有两个不相等的实数根,即b2-4ac0。 程序代码如下: #include stdio.h #include math.h double x1,x2;//用来存放方程的两个实数根 void RealRoot (double a,double b,double c) { double p,q; p=-b/(2*a); q=sqrt(b*b-4*a*c)/(2*a);//sqrt为求平方根库函数 x1=p+q;//求得第一个实数根 x2=p-q; //求得第二个实数根 } int main() { double a,b,c; printf(请输入系数a,b,c,需保证b*b-4*a*c0:); scanf(%lf%lf%lf,a,b,c); RealRoot (a,b,c); printf(方程%.2lfx*x+%.2lfx+%.2lf=0的两个实数根是:\n,a,b,c); printf(x1=%.2lf,x2=%.2lf\n,x1,x2);//输出外部变量的值 return 0; } 此程序中,定义了两个外部变量x1,x2用来存放方程的两个实数根,由于这两个外部变量定义在了RealRoot函数和主函数main之前,所以在这两个函数中都起作用,RealRoot函数用来求得x1,x2的值,求得结果在主函数中输出。

文档评论(0)

1亿VIP精品文档

相关文档