C语言概述

C语言基础知识

C程序的生成过程

  • 源程序(.c)编译生成目标文件(.obj)
  • 目标文件经连接生成可执行文件(.exe)
  • 每个后缀为.c的源程序都可以单独进行编译,一个普通的C函数可以单独作为一个C的程序文件被包含到其他程序

运行可执行文件时,只能读用户输入的字符/数据,改变运行步骤

计算机只能处理二进制表示的目标程序,不能直接执行由C语言编写的源程序

C语言的构成

  • 函数 (实现程序模块化)
    • 源程序由函数构成,C语言无子程序概念
    • 函数可以声明/调用另一个函数,但不能嵌套定义函数
    • scanf、printf为函数,不是语句
    • 递归调用即直接或间接调用自身
    • 函数返回值为int类型时可省略
  • 主函数
    • 每个源程序有且仅有一个主函数,可以放在任何位置
    • 执行从main函数开始,但不一定在main结束(任何地方可调用exit()结束
    • 主函数不能被其他函数调用
    • 注释
      • 单行注释//
      • 块式注释/* */
      • 允许出现在程序的任何位置
  • 预处理命令
    • 以“#”开头的语句

算法

  • 伪代码
  • 流程图
    liuchengtu
  • N-S
    • 可以描述多种结构

常量、变量和数据类型

标识符

  • 命名规则
    • 只能由字母、数字、下划线组成
    • 第一个字符必须是字母或下划线,不能是数字
    • 区分字母的大小写
  • 规定长度因系统而异,没有限制最大长度。
  • 分类
    • 关键字 有固定含义,不能更改
    • 预定义标识符 有特定含义
    • 用户标识符
      • 命名规则
        • 做到“见名知义”
        • 不能与关键字相同

预定义标识符可用作用户标识符,但失去原有含义

常量 (值不能被改变)

  • 分类
    • 整型常量 (数值型常量)
      • 表示形式
        • 十进制整型常量
          • 基本数字范围:0-9
        • 八进制整型常量
          • 以0开头,基本数字范围:0-7
        • 十六进制整型常量
          • 以0x(0X)开头,数字范围0-15,其中10-15写成A-F或a-f
    • 实型常量 (数值型常量)
      • 表示形式
        • 小数形式 十进制小数形式小数点两边必须有数字
        • 指数形式 e前e后必有数,e后必须为整数
    • 整型常量和实型常量都有正负之分

    • 字符常量
      • 用‘ ’括起来,例如‘a’;区分大小写
      • 转义字符(特殊的字符常量)
        zhuanyizifu
      • 字符常量可以参与任何整数运算
      • 两个连续的单引号是非法的('')
    • 字符串常量
      • 用“ ”括起来,例如“hello”、“a”;
      • 不能用字符串常量对字符数组名进行整体赋值操作,但可以给一维字符数组赋值。
      • 所占内存字节数等于字符串中字节数加1
      • 两个连续的双引号是合法的(“”),即为空字符串。
    • 符号常量
      • 预处理命令“#define”定义的常量,在C程序中可用标识符代表一个常量(定义时不必指定常量类型

常量的类型可以从字面形式上进行区分

变量 (值可以被改变)

  • 规定
    • 变量要有变量名使用前要先定义
    • 占据内存一定·存储单元,不同类型存储单元也不一样
    • 存储单元存放的是变量的值
    • 变量的存储单元不能随时改变
  • 内存字节数
    • char型 1字节
    • int型 (整型变量) 4字节
    • float型 4字节
    • double型 8字节
  • 整型变量
    • 分类
      • int型
      • short型
      • long型
      • unsigned型
  • 字符型变量
    • 定义形式 char c;
    • 赋值形式 c=‘m’;

字符型数据与整型数据之间可以通用,一个字符能用字符形式输出,也能用整数的形式输出

字符数据进行算术运算,相当于对它们的ASCII码进行运算