#带你走进C语言海洋##零基础小白##初识C语言##——第二篇

初识C语言(二)

  • 变量
    • 变量的作用域和生命周期
      • 作用域
      • 生命周期
  • 常量
  • 字符串
  • 转义字符
  • 循环语句
  • 函数
  • 数组

变量

上一篇内容,讨论了定义变量的方法,变量的分类以及变量的使用,那么今天我们从变量的作用域以及生命周期继续开始学习。

变量的作用域和生命周期

作用域

作用域是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效或者可用的。

而限定这个名字的可用性的代码范围就是这个名字的作用域。

  • 局部变量的作用域是变量所在的局部范围。
  • 全局变量的作用域是整个工程。

生命周期

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。

  • 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
  • 全局变量的生命周期是:整个程序的生命周期。

常量

C语言中的常量和变量的定义的形式有所差异。

C语言中的常量分为以下几种:

  • 字面常量
  • const修饰的常变量
  • #define定义的标识符常量
  • 枚举常量
#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;
}

运行的结果是这样的:
#带你走进C语言海洋##零基础小白##初识C语言##——第二篇_第1张图片
这就不得不提一下转义字符了。转义字符顾名思义就是转变意思。

看以下转移字符:
#带你走进C语言海洋##零基础小白##初识C语言##——第二篇_第2张图片

循环语句

这里我们只想讲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");
}

你可能感兴趣的:(c语言,开发语言)