零基础C语言:第一讲(学习前言)

284 阅读4分钟

「这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战

  • C语言——》汇编语言——》机器语言——》cpu读取指令执行

  • 特点:效率高、可移植性高、灵活度高

  • 编译型语言(C)和解释型语言(java)

  • ASCLL码

    • 对照表
  • 打印printf函数,如果输出的不止一行数据,则可以使用反斜杠\代表继续

    • 举例
  • 变量:确定目标并提供存放的空间

    • 变量名规范

      • 只能用英文字母和数字或下划线组成
      • 第一个变量必须是字母或下划线开头
      • 变量名区分大小写
      • 不能使用关键字命名变量
    • 关键字 注:蓝色粗体显示的关键字是由ISO/ANSI C90标准新增的,而粉色斜体所显示的是由C99标准所新增的。还有七个关键字未写出
    • 数据类型

      • char:字符型,占用一个字节(byte)
      • int:整型,通常反映了所用机器中整数的最自然长度
      • float:单精度浮点型
      • double:双精度浮点型
    • 声明变量:数据类型 变量名
    • 举例
  • 常量

    • 整型常量:520、123、1314
    • 实型常量:3.14、5.12
    • 字符常量

      • 普通字符:‘L’、‘O’、‘V’、‘E’
      • 转义字符:‘\n’、‘\t’、‘\b’
    • 字符串常量:“FishC”

      • 计算机是怎么识别字符串结束位置?:自动添加并使用‘\0’表示结束字符
      • 举例
    • 符号常量:使用前必须先定义(宏定义)

      • 格式:#define 标识符(大写) 常量
      • 举例:#define NAME “许发有”
      • 举例
  • 数据类型

    • 基本类型

      • 整数类型:short int、int、long int、long long int
      • 浮点数类型:float、double、long double
      • 字符类型:char
      • 布尔类型:_Bool
      • 枚举类型:enum
    • 指针类型
    • 构造类型

      • 数组类型
      • 结构类型
      • 联合类型
    • 空类型
    • sizeof运算符:用于获取数据类型或表达式的长度

      • sizeof(object);//sizeof(对象);
      • sizeof(type_name);//sizeof(类型);
      • sizeof object;//sizeof 对象;
      • 举例1代码
      • 举例1结果
      • 举例2代码
      • 举例2结果
    • signed和unsigned:是否带符号(正负)

      • 举例
      • 结果
      • 数据的取值范围

        • CPU能读懂的最小单位——比特位,bit,b
        • 内存机构的最小寻址单位——字节,Byte,B
        • 1Byte==8bit,即一个字节由八位组成
        • 进制:二进制、十进制、十六进制
        • 一个字节八位,最大表示为2的8次方减1,为255
        • 举例
        • 结果
        • 补码(计算机存储的形式)

          • 正数的补码是该数的二进制形式
          • 负数的补码需要通过以下几个步骤获得

            • 先取得该数的绝对值的二进制形式
            • 再将第一步的值按位取反再加1
          • 一个字节八位,最大正数为127,最小负数为-128。因为正数是从0开始,负数是从-1开始
    • ASCLL字符的使用

      • 举例
      • 运行结果
    • 字符串

      • 声明字符串:char 变量名[长度]
      • 举例

        • char name[7]
        • 给字符串赋值方式一:name[0]='X';name[1]='u';name[2]='F';name[3]='a';name[4]='Y';name[5]='o';name[6]='u';
        • 给字符串赋值方式二:char name[7]={'X','u','F','a','Y','o','u'};
        • 代码
        • 运行结果
  • 运算符:C语言通过提供运算符对数据进行处理

    • 算术运算符
    • 关系运算符

      • 举例
      • 结果(1代表真,0代表假)
    • 逻辑运算符
    • 位运算符
    • 赋值运算符
    • 杂项运算符 ↦ sizeof & 三元
    • 运算符的优先级和结合性

      • 优先级(从上到下优先级降低)
      • 举例
      • 输出结果
    • 表达式:用运算符和括号将操作数连接起来的式子,例如1+1、‘a’+‘b’
    • 逻辑表达式:用逻辑运算符将两边的变量、数据或表达式连接起来,例如3>1&&1<2、3+1||2==0、!(a+b)

      • 代码举例
      • 结果
    • 短路求值

      • 短路求值又称为最小化求值,是一种逻辑运算符的求值策略。只有当第一个运算数的值无法确定逻辑运算的结果时,才对第二个运算数进行求值
      • C语言对于逻辑与、逻辑或采用短路求值的方式
      • 举例(此时两个逻辑运算均只执行了左侧便得出结论,而不用再执行右侧)
      • 结果
  • 类型转换

    • 常用的算术转换:如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算,转换规则如下图所示。
    • 强制类型转换:强制类型转换是把变量从一种类型转换为另一种数据类型。例如,如果想存储一个 long 类型的值到一个简单的整型中,需要把 long 类型强制转换为 int 类型。

      • 语法格式:(type_name) expression
      • 举例
      • 结果