1

程序设计入门—C语言 (幕课课程笔记)

Mac环境搭建

  • terminal
  • 》 "gcc"
  • 》确认,安装
  • 》 gcc || gcc --version

本课程程序的基本框架

#include 'stdio.h'

main(){
     //code 
    return 0;
}

注释

* 单行`//`(C99,而ANSI C不支持)
* 多行`/* */`

变量的定义

  • <变量类型><标识(zhi4)符> [ = <初始值>]

    • 标识符

      • 数字、字母、“_”
      • 数字不开头
      • 关键词不可用
    • 变量类型

      • 必须具有确定的数据类型

        • 可以存放什么数据
        • 只能存放指导类型的数据
        • 运行过程中不得改变变量的类型
    • 赋值 与 初始化

      • 初始化 int peace = 1 ;
        • 定义之际进行赋值
        • 调用一个定义了却没有初始化的变量时,这个变量的值是其位置内存原本存储的量。

          • 就像是,打开了一个房间,没有清扫里面的东西就住进去了
      • 赋值 peace = 1;
        • 在代码中
        • ‘=’ 是 ‘将右边的值赋给左边的变量’
        • ‘=’ 相当于 ‘被赋值’
        • a=b != b=a
        • 嵌入式赋值

          • 嵌入式赋值
          • 尽量不要用!

            • 《不利于阅读理解
            • 《容易出现错误

常量-固定不变的数

  • 定义常量

    • const **<变量类型>** <变量名称> = <初始值>

      • const 修饰符
      • 给变量加入一个const[‘只读’]的属性 (C99
      • 使得变量一旦初始化便不能修改。
    • 可消除 幻数 》易阅读
    • 常 通过全大写 来 表面其身份。
  • 直接写在程序里的我们称作直接量(literal)。

    • 某些为 幻数(magic number)

运算

表达式

一个表达式 是 一系列 运算符算子 的组合,用来计算一个值。

表达式

运算符(operator)
  • 进行运算的动作
  • 关系(比较)运算

    • 关系(比较)运算符

      • 关系运算符表
    • 运算结果

      • 真 》 1
      • 假 》 0
  • 单目 VS 双目

    • 运算符只有一个算子
    • -a(取相反数) 的 ‘-’ 是个单目运算符。
    • 而 a-b(相减) 的 ‘-’ 是个双目运算符。

    a是变量,将取负

  • e.g.

    • '+'加法运算符
    • '-'减法运算符
    • '=' 赋值运算符

      • ‘=’ 是 ‘将右边的值赋给左边的变量’
      • a=b != b=a
算子[操作数、运算数](operand)
  • 参与运算的

运算规则

  • 运算符优先级

    • 运算符优先级
    • 关系运算符

      • 自左向右

        • a == b == c
      • 与外族

        • 》赋值
        • 《 算术
      • 内部

        • '=='&'!='的优先级比较低
    • 注意:单目 和 赋值 是 自右向左。
  • 两个整数的运算结果只能是整数

    • 《 C语言是有类型的语言
    • 运算过程中将扔掉出现的小数

      • 10/3; //3
      • 10/3*3; //9
  • 浮点数与整数的运算过程中

    • 整数将转换成浮点数 》进行浮点数的运算
    • 10.0/3*3 =3.3333
  • 10 != 10.0

    • 10 = 整形数
    • 10.0 =浮点数

数值类型

  • 整形数

    • int
  • 浮点数

    • 本意指 》 小数点是浮动的
    • 表达非整数(分数&无理数)的一种方式
    • double

      • 双精度浮点数
    • float

      • [单精度]浮点
    • C语言中没有]定点数

      • 计算机中也可以表示小数

语句

判断语句(if...else...)

if(condition){
    //statements
}

常用函数

  • f = ‘formatde’ = 格式化

输入函数scanf

  • scanf("变量类型",&变量名称);
  • 当输入的值 与 设置变量类型不一致时,将输入默认值

    • (迷)或是当前某处内存的值

      • scanf出错
    • 数字 》 0
    • 字符串 》?
    • ......
  • 输入两个值时

    • 出现在字符串里面的都是他一定要读到的东西,是必须被正确输入的东西。

      • %d,%d

        • ','必须出现,否则出错。
      • %d %d

        • 《 当输入 "1 2" 之后,已经完成赋值。因此后面原来的 ' '(空格)输入任意东西即可。
      • price %d %d

        • 》 一定要以"price xxx"的形式输入。
  • 输入值的类型是 双精度(double) 时

    • "%lf"
  • 尽量使用双引号?

    • 《单引号 = 字符
    • 《双引号 = 字符串

输出函数printf

  • printf("内容||变量类型",变量名称);
  • 尽量使用双引号?

    • 《单引号 = 字符
    • 《双引号 = 字符串

程序设计

基本思路

  • 《 一个函数的基本模型模型

    • 读一些输入
    • 做一些计算
    • 输出一些东西
  1. 需要什么变量的 * 在问题的解决中 需要处理到什么数据。

    • 怎么从 用户处 取得数据。
  2. 怎么计算

    • 算法
  3. 输出些什么

优秀的代码?

  • 有时候需要代码足够笨,笨的让很多人一眼就能看懂。

    • 《 就像数学题写得一步一步地
    • 例子:

      • 笨笨的代码、还是聪明的代码

例子

  • 计算时间

    • 将输入的 时间和分钟 进行 分钟化||小时化 后 》
    • 再做计算 获得最后的值 》
    • 小时部分: [最后的值]/60 =[小时数] [最后的值]/60 =[分钟数]

C语言

特点

  • 一种有类型的语言

    • 所有的变量

      • 必须具有确定的数据类型

        • 可以存放什么数据
        • 只能存放指导类型的数据
        • 运行过程中不得改变变量的类型

C语言标准

  • C99

    • 允许在运算过程的任意位置定义变量
  • ANSI C

    • 只能代码的开头定义变量
  • C99 与 ANSI C 的区别

其他

0的故事

  • 当人类有电报之后 0[零] 和 O[噢] 长的特别像。
  • 后来终端出现之后,默认字体:

    • 代码中默认的两种0的字体

RDDcoding
151 声望17 粉丝

一心一行