《C编程.开始C》2.初步开发

在学习C语法和编程结构之前,学习一些关键术语的含义非常重要,这些术语是理解C的核心。

块结构,语句,空格和范围

接下来我们将讨论C程序的基本结构。如果您熟悉PASCAL,您可能听说过它被称为块结构语言。C没有完整的块结构(您将在详细了解函数时找到原因)但是了解哪些块以及如何使用它们仍然非常重要。

那么什么是?通常,块由可执行语句组成。

但是在我们深入研究区块之前,让我们来研究一下。描述语句的一种方法是编译器将尝试转换为可执行指令的文本(以及周围的空白)。更简单的定义是语句是执行操作的代码。例如:

int  i  =  6 ;

声明了一个整数变量,可以使用标识符 ‘i’ 访问它,并将其初始化为值6.各种数据类型在变量章节中介绍。

您可能已经注意到语句末尾的分号。C语句总是以分号(;)结尾。不用分号是许多人制作的常见错误,初学者和专家都一样!因此,在它成为第二天性之前,请务必仔细检查您的陈述!

由于C是一种“自由格式”语言,因此几个语句可以在源文件中共享一行,如下所示:

/ *这声明变量'i','test','foo'和'bar' 
    请注意,只有名为'bar'的变量设置为6!* / 
int  i , test , foo , bar  =  6 ;

有几种陈述。你已经看过其中的一些,比如作业(i = 6;)。本书的很大一部分涉及陈述结构。

用’/ *’和’* /’分隔的句子是注释,编译器会忽略它们。它们在编程结构和样式中描述

回到我们对块的讨论。在C中,块以一个左括号“{”开头,以一个右括号“}”结束。块可以包含其他可以包含自己块的块,依此类推。

我们来看一个块示例。

int  main (void ) 
{
  / *这是'block'* /
int i = 5 ;
{
  / *这也是一个'块',嵌套在外部块* /
int i = 6中;
}
  返回 0 ;
}

您可以使用具有前面语句的块,例如main函数声明(以及我们尚未介绍的其他语句),但您也可以单独使用块。

空格是指用于分隔构成源代码的文本字符的制表符,空格和换行符。
就像生活中的许多事情一样,在它消失之前很难欣赏到空白。对于C编译器,源代码

    printf (“Hello world” );  返回 0 ;

是相同的

    printf (“Hello world” );      
  返回 0 ;

这也是一样的

    printf  (     
“Hello world” ) ;

  返回 0 ;

编译器简单地忽略最空白(除,例如,当其分离return0)。但是,通常的做法是使用空格(或制表符)来组织源代码以实现人类可读性。

大多数情况下,我们不希望其他函数或其他程序员的例程访问我们当前正在操作的数据,这就是为什么理解范围的概念很重要。

范围描述了一段数据或功能可见的级别。C中有两种类型的范围,本地全局。当我们谈到全球范围时,我们指的是可以从程序中的任何地方看到或操纵的东西。局部范围适用于只能在声明它的块内查看或操作的程序元素。

让我们看一些例子来更好地了解范围。

int  i  =  5 ;  / *这是一个'全局'变量,它可以从程序中的任何地方访问* /

/ *这是一个函数,它内部的所有变量
    都是函数的“本地”。* / 
int  main (void )
{ 
    int  i  =  6 ;  / *'我'现在等于6 * / 
    printf (“%d \ n ” , i );  / *在屏幕上打印'6',而不是'i'的全局变量,即5 * /

    返回 0 ; 
}

这显示了本地和全球的一个例子。但是函数内部的不同范围呢?
(稍后您将了解有关函数的更多信息,现在,只关注“主要”部分。)

/ * main函数* / 
int  main (void )
{ 
    / *这是'block'的开头,你看过上面那些* /

    int  i  =  6 ;  / *这是'block'的第一个变量,'i'* /

    { 
        / *这是一个新的'块',因为它是一个不同的块,它有自己的范围* /

        / *这也是一个名为'i'的变量,但是在一个不同的'块'中,
            因为它与第一个名为'i'的变量位于不同的'块'中,所以它不会影响第一个变量!* / 
        int  i  =  5 ; 
        printf (“%d \ n ” , i );  / *在屏幕上打印'5'* / 
    } 
    / *现在我们回到第一个块* /

    printf (“%d \ n ” , i );  / *在屏幕上打印'6'* /

    返回 0 ; 
}

使用函数的基础知识

函数是编程的重要组成部分。函数是一种特殊的块,可执行定义明确的任务。如果函数设计得很好,它可以使程序员在不知道函数如何工作的情况下执行任务。请求函数执行其任务的行为称为函数调用。许多函数需要调用者将其执行任务所需的某些数据交给它; 这些被称为参数。许多函数在完成后也会向调用者返回一个值; 这称为返回值(上述程序中的返回值为0)。

在调用函数之前需要知道的事情是:

  • 这个功能是做什么的
  • 参数的数据类型(稍后讨论)及其含义
  • 返回值的数据类型及其含义

许多函数使用返回值作为计算结果。某些函数使用返回值来指示它们是否已成功完成其工作。正如您在介绍练习中看到的那样,该main函数使用返回值为操作系统提供退出状态。

除全局数据定义和声明之外的所有代码都必须是函数的一部分。

通常,您可以随意调用函数。唯一的限制是每个可执行程序都需要一个且只有一个函数,这是程序开始执行的地方。

我们将在后面的章节C编程/过程和函数中更详细地讨论函数。

标准库

1983年,当C正在变得标准化时,美国国家标准协会(ANSI)成立了一个委员会来建立一个名为“ANSI C”的C标准规范。该标准规范创建了C的每个实现共有的一组基本功能,称为标准库。标准库提供诸如输入/输出,字符串操作,数学,文件和内存分配等任务的功能。标准库不提供依赖于特定硬件或操作系统的功能,如图形,声音或网络。在“Hello,World”程序中,使用标准库函数(printf),它将文本行输出到标准输出流。

猜你想读:《C编程.开始C》3.编译基础

THE END
分享