C程序设计笔记1-5章,简介/数据类型/结构

[TOP]

选择《C程序设计》作为自己C的入门书,感觉前面几章还是比较容易理解的。粗读一遍,不求甚解。

简介

常识类

机器语言->(<-汇编程序)汇编语言->(<-编译程序)高级语言
高级语言时期->非结构化->结构化->面向对象
8个byte=1字节 0~255
整数存放:补码形式(以1字节为例)
正数 即二进制存放 如5 00000101
负数 取绝对值的二进制,取反(0变1,1变0),再加1 如-5 11111011

历史

起源BCPL(1967Martin Richards)->B(1970Ken Thompson)->C(1972D.M.Ritchie)
标准C89->C99

基本

程序结构
  1. 源程序文件

    1.1 预处理指令
    1.2 全局声明
    1.3 函数定义

  2. 函数
    2.1 函数首部
    2.2 函数体
  3. 程序是从main函数开始执行的
  4. 输入输出不是C语言提供的而是库内置函数完成的
运行步骤

输入程序->编译->连接处理->运行可执行程序

程序设计

  1. 问题分析
  2. 设计算法
  3. 编写程序
  4. 编译连接
  5. 运行,分析结果
  6. 编写程序文档

算法

data structure 程序中要制定用到那些数据以及这些数据的类型和数据的组织形式
algorithm 对操作的描述
data structure + algorithm = program

算法是程序的灵魂,数据结构是程序的肉体

算法特性
  1. 有穷
  2. 确定 每个步骤不能模棱两可
  3. 有0或多个输入
  4. 有至少1个输出
  5. 有效性 比如1/0是无效的
算法的表示
  1. 自然语言描述 可以理解为一般客户说他想要啥样的产品/结果
  2. 流程图 初中即学过的流程图
    #####三种基本结构
  3. 顺序结构
  4. 选择结构
  5. 循环结构
    3.1 while
    3.2 until(do…while)
  6. N-S流程图 无需箭头,更美观
  7. 伪代码描述 没有语法能懂逻辑就行为交流而生
  8. 计算机语言描述 即使用各语言来实现
程序设计基本方法
  1. 自顶向下 先想要达到什么目的,要干什么
  2. 逐步细化 再想分成几步走,怎么走
  3. 模块化设计 每一步最好各自分开,不要出现一步走错全部重来
  4. 结构化编码 遵循基本结构使更逻辑更清晰

数据结构

  1. 常量 # define
  2. 变量
  3. 常变量 C99 例const int a=3

    符号常量在预编译的时候就把符号替换为值了,而常变量的名字是占存储单元的。

  4. 标识符 即各种名字

数据类型

数据类型

运算符

运算符的优先级

运算符种类
  1. 算数运算符 +-*/
  2. 关系运算符 <>==>=<=!=
  3. 逻辑运算符 !&&||
  4. 位运算符 >> << ~ | ^ &
  5. 赋值运算符 =
  6. 条件运算符 ?:
  7. 逗号运算符 ,
  8. 指针运算符 * &
  9. 求字节数运算符 sizeof
  10. 强制类型转换运算符 (类型)
  11. 成员运算符 . ->
  12. 下标运算符 []
  13. 其他 函数调用运算符()
C语句种类

1.控制语句
1.1 if…else…
1.2 for()…
1.3 while()…
1.4 do…while()…
1.5 continue
1.6 break
1.7 switch
1.8 return
1.9 goto
2. 函数调用
3. 表达式
4. 空语句
5. 复合语句

输入输出

printf
常用格式:d,o,x,u,c,s,f,e
例 %m.nf m为数据宽度 n为小叔位数
scanf
putchar/getchar

选择结构

if…else…
关系运算符和关系表达式
逻辑运算符和逻辑表达式
条件运算符和条件表达式
结构嵌套
switch

循环结构

while
do…while
for()…
循环嵌套

改变循环状态

break 终止
continue 结束本次(本圈)循环

后记 一遍读完觉得貌似学到什么又觉得什么也没学到,一篇读书笔记是必要的。C语言是走向高级大招技能的前置技能点,务必研究扎实。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值