zoukankan      html  css  js  c++  java
  • K&R C Note

    Chapter 1 - A Tutorial Introduction

    一个C程序,无论它的大小几何,都由函数与变量组成

    1.1 开始

    要素 作用
    函数 functions 包含语句(Statement),以指定要执行的计算步骤
    变量 variables 储存在计算工程中使用到的值
    1. 函数mian()是特殊的,程序将从mian()函数开始执行,这也意味着每个程序都必须有一个main().

    2. 程序第一行的#include <stdio.h>告知编译器将标准库的信息包含.

    3. 转义字符串(escape sequence)只表示一个单一的字符,它提供了一个用于表示har-to-type字符的通用拓展机制.

    1.2 变量与算数表达式

    1. 在C言语中,一个变量必须在被声明(declared)之后才能被使用。变量的声明指定了变量的属性(properties).

    2. 由大括号(braces)围起的多个语句称为复合语句(compound statement),简称为语句块。语句块的结束无需和简单语句一样使用分号; .

    1.3 For语句

    1. for语句是一种循环,是对于while语句的普遍化(generalization).
    2. 递增步骤(increment step)将在语句块执行完成后被执行.
    3. for通常适用于初始化语句和递增语句为简单语句并且逻辑相关的循环.

    1.4 符号常量

    1. 让大量的幻数(magic number),如200、300充斥于程序中是很坏的习惯.
    2. 语句#define [name] [replacement list]可以使符号常量(symbolic constant)或符号名称(symbolic name)被替换为特定的字符串.

    1.5 字符输入与输出

    1. 文本流(text stream)是被分割为数行的字符序列.
    2. EOF (End Of File) 是由标准库所定义的整形数.
    3. 计算行即意味着计算换行符(newline character).
    4. ||(or)与&&(and)所连接的表达式由左向右结合,被称为短路运算.
    5. 标准库提供了以下的简单函数用于读写字符:
      1. getchar() 用于从文本流中读取下一个输入字符并返回字符的值
      2. purchar(int) 用于打印指定值的对应字符

    1.6 数组

    1. int arrays-name[int length]声明一个长度为length的数组,下标由0开始.
    2. 在最初的if语句与最后的else语句间,可以存在数个else if语句.

    1.7 函数

    1. 函数的定义(defination)有如下形式:

      return-type function-name(parameter-declarations, if any)
      {
          declarations
          statements
          }
      
    2. 函数的声明(declaration)被称为函数原型(prototype),必须与函数的定义与用法一致,有如下形式:

      return-type function-name(parameter-declarations)
          /* 元素名是可选的(optional),这意味着它可以省略 */
      
    3. 函数的参数(parameters)所使用的变量名作用于函数内部.

    4. 函数并不必要返回一个值,return语句本身便可以如}一般控制程序终止(即使它不返回有效的值).

    5. 函数应当向环境返回它的运行状态.

    1.8 实际参数(Arguments) - 传值调用

    1. 被传入调用函数实参的值由一个临时变量(temporary variables)而不是原始变量提供.
    2. 引用调用(Call by reference)指被调用的程序例与原始的实参相关联,而不是一个局部拷贝.
    3. 为了在调用程序例时修改变量值,调用者需要提供变量所处的内存地址(指针).被调用的函数也必须将该形参声明为一个指针并且通过它访问(access)原函数的值.
    4. 当一个数组的标识符被用作实参,被传递给函数的值是数组起始位置的地址,而不是数组的拷贝.

    1.9 字符数组

    1. 处于字符数组的结尾,用于标记字符串的结束. 换言之,没有的字符数组将不被C语言视为字符串.
    2. %f的格式规范要求对应的数组符合Char Char Char ... ''的形式.

    1.10 外部变量与作用域

    定义(Defination): 表示创建变量或分配储存单元.

    声明(Declaration): 表示说明变量的属性,但并不分配储存单元.

    1. 每个局部变量只在函数被调用时开始存在并在函数结束后消失,这便是为何局部变量被称为自动变量(automatic variables)。
    2. 由于自动变量伴随函数的调用周期,它们并不会保留它们的值到下次调用,并且必须在每次进入时被明确的(explicitly)设置. 如果没有被设置,它们将包含垃圾数据.
    3. 外部变量(external variables)可以被全局访问. 要在函数内部访问它,可以由external语句明确地声明一个标识符是外部的,也可以由上下文所声明. 在C语言中,如果外部变量的定义出现在使用它的函数之前,函数中没有必要使用external声明,反之则必要.
    4. 在ANSI C 中,如果要声明空参数表,则必须使用关键字 void 进行显式声明. 为了与老版本 C 语言程序兼容,ANSI C 语言把空参数表看成老版本 C 语言的声明方式,并且对参数表不再进行任何检查。

    本文作者: yakuback
    版权声明: 本文使用 署名-非商业性使用-相同方式共享 许可协议. 如需转载,请您注明出处.

  • 相关阅读:
    SSH框架整合思想
    Spring框架
    Struts2框架
    CentOS6 设置AliNetflow 环境
    Why It is so hard to explain or show some thing
    一 hadoop 相关介绍
    test markdown 写博客
    测试使用markdonw写博客
    使用spark 计算netflow数据初探
    hbase definitive guide 笔记
  • 原文地址:https://www.cnblogs.com/yakuback/p/krc_c1.html
Copyright © 2011-2022 走看看