上一篇内容,讨论了定义变量的方法,变量的分类以及变量的使用,那么今天我们从变量的作用域以及生命周期继续开始学习。
作用域是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效或者可用的。
而限定这个名字的可用性的代码范围就是这个名字的作用域。
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。
C语言中的常量和变量的定义的形式有所差异。
C语言中的常量分为以下几种:
#include
//举例
enum Sex
{
MALE,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
//字面常量演示
3.14;//字面常量
1000;//字面常量
//const 修饰的常变量
const float pai=3.14f;//这里的pai是const修饰的常变量
pai=5.14;//是不能直接修改的!
//#define的标识符常量
#define MAX 100
printf("max=%d\n",MAX);
//枚举常量演示
printf("%d\n",MALE);
printf("%d\n",FEMALE);
printf("%d\n",SECRET);
//枚举常量的默认是从0开始,依次向下递增
return 0;
}
“hello bit.\n”
这种由双引号引起来的一串字符称为字符串自面值,或者简称字符串。
注:字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候\0是结束标志,不算作字符串内容。
#include
int main()
{
char arr1[]="bit";
char arr2[]={'b','i','t'};
char arr3[]={'b','i','t','\0'};
printf("%s\n",arr1);
printf("%s\n",arr2);
printf("%s\n",arr3);
return 0;
}
假如我们要在屏幕上打印一个目录:c;\code\test.c
我们该如何写代码?
#include
int main()
{
printf("c:\code\test.c\n");
return 0;
}
运行的结果是这样的:
这就不得不提一下转义字符了。转义字符顾名思义就是转变意思。
这里我们只想讲while语句。
只要控制表达式为 true,while 循环就会反复地执行语句:
while (表达式)语句
while 表达式是顶部驱动(top-driven)的循环:先计算循环条件(也就是控制表达式)。如果为 true,就执行循环体,然后再次计算控制表达式。如果控制表达式为 false,程序跳过循环体,而去执行循环体后面的语句。
从语法上讲,循环体只有一条语句组成。如果需要执行多条语句时,可以使用语句块把它们组合在一起。例 1 展示了一个简单的 while 循环,从控制台读入多个浮点数,并把它们累加。
eg:展示了一个简单的 while 循环,从控制台读入多个浮点数,并把它们累加。
【例1】一个 while 循环
从键盘输入数字,然后输出它们的平均值
#include
int main()
{
double x = 0.0, sum = 0.0;
int count = 0;
printf( "\t--- Calculate Averages ---\n" );
printf( "\nEnter some numbers:\n"
"(Type a letter to end your input)\n" );
while ( scanf( "%lf", &x ) == 1 )
{
sum += x;
++count;
}
if ( count == 0 )
printf( "No input data!\n" );
else
printf( "The average of your numbers is %.2f\n", sum/count );
return 0;
}
再此题中,只要用户输入一个小数,下面的控制表达式即为 true:
scanf( “%lf”, &x ) == 1
然而,只要函数 scanf()无法将字符串输入转换成浮点数(例如,当用户键入字母 q 时),则 scanf()返回值 0(如果是遇到输入流的尾端或发生错误时,则返回值 -1,表示 EOF)。这时,循环条件为 false,程序将会跳出循环,继续执行循环体后面的 if 语句。
在程序中调用函数时,需要提供函数名和实参列表。实参列表是实际传递给函数的参数,其数据类型和数量必须与函数定义时的参数列表一致。
例如,下面调用了 sum 函数,并输出了其返回值:
int a = 3, b = 4;
int c = sum(a, b);
printf("sum(%d, %d) = %d\n", a, b, c);
数组的集成初始化:
int a[]={2,4,6,7,1,3,5,9,11,13,23,14,32};
这次对数组的赋值很上次有明显的不同,这次并没有在方括号里给出数组的大小,而是直接在大括号里给出了数组中每一个变量所该取的值。其实,数组的大小,我们可以让计算来帮我们数
int a[]={2,4,6,7,1,3,5,9,11,13,23,14,32};
{
int i;
for(i=0;i<13;i++){
printf("%d\t",a[i]);
}
printf("\n");
}