程序结构
C语言程序是可以切割成许多小的函数,其中最主要的是main()
函数。
在设计程序时,时常会调用库函数,如printf()
和scanf()
,说明了一个函数可以调用另一个函数,完成特定的工作。在调用函数的内部又可以继续调用新的函数或本身。
变量的作用域和生存期
在前面的所有例子中,都是在main()
函数体的起始处声明程序的变量。实际上。我们可以在任何代码块中定义变量。而变量只存在于定义它们的代码块中。在外部块的起始声明的变量也存在于内部块中。这些变量可以随意使用,只要内部块没有同名的变量即可。
变量在一个块内声明时创建,在这个块结束时删除,这种变量成为自动变量。给定变量可以在某个程序代码块中访问与引用,这个程序代码块称为变量的作用域。
变量在执行创建到删除,称为变量的生存期。
代码一:
#include <STDIO.H>
#include <STDLIB.H>
int main(void)
{
int count1 = 1;
do
{
int count2 = 0;
++count2;
printf("\ncount1 = %d count2 = %d",count1,count2);
} while (++count1 <= 8);
printf("\ncount1 = %d\n",count1);
return 0;
}
count1 = 1 count2 = 1
count1 = 2 count2 = 1
count1 = 3 count2 = 1
count1 = 4 count2 = 1
count1 = 5 count2 = 1
count1 = 6 count2 = 1
count1 = 7 count2 = 1
count1 = 8 count2 = 1
count1 = 9
Press any key to continue
代码二:
#include <STDIO.H>
#include <STDLIB.H>
int main(void)
{
int count = 0;
do
{
int count = 0;
++count;
printf("\ncount1 = %d ",count);
} while (++count <= 8);
printf("\ncount = %d\n",count);
return 0;
}
count1 = 1
count1 = 1
count1 = 1
count1 = 1
count1 = 1
count1 = 1
count1 = 1
count1 = 1
count1 = 1
count = 9
Press any key to continue
变量的作用域和函数
每一个函数体都是一个块(也包含其他块),在一个函数内部声明的自动变量是这个函数的本地变量,其他函数不能被调用。所以在一个函数内部声明的变量完全独立于在其他函数内声明的变量。因此,函数内部的变量只能作用于创建时的函数。