且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《C语言解惑》—— 3.3 基本数据的初始化

更新时间:2022-10-01 14:55:06

本节书摘来自华章出版社《C语言解惑》一 书中的第3章,第3.3节,作者:刘振安 刘燕君,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.3 基本数据的初始化

【例3.5】下面是计算1+2+3+…+9+10的程序,编译正确但运行结果错误,错在哪里呢?

#include<stdio.h>
void main( )
{
        int sum,i;
        for(i=1;i<11;i++)
         sum=sum+i;
        printf ( "%d\n",sum);
}

因为没有用0值初始化变量sum,也就是使用了不确定的sum值参加了求和,所以运算结果错误。实际上,应该对所使用的变量都初始化,以避免出现这类问题。例如,可使用如下语句初始化变量。
int sum=0, i=0;
【例3.6】分析下面程序中的错误语句。

#include <stdio.h>
void main ( )
{
      int a=b=25,  c;
      int d=a+b+c;
      c=35;
      printf ( "%d\n", d); 
      int f=55;
      printf ( "%d+%d=%d\n", a,f, a+f); 
}

语句“int a=b=25”是错误的,正确形式为“int a=25, b=25”。因为变量c是在变量d后赋值的,所以“int d=a+b+c;”的值是不确定的。“int f=55;”放在执行语句之后也是错误的,C语言需要将所有对变量的声明都放在执行语句之前(C++可以在使用时再声明,这是两者的区别)。改正的方法并不唯一,下面是一种参考方法。
int a=25, b=25,c=35;
int d=a+b+c,f=55;