计算机导论笔记

计算历史

(略)

计算机的特点与应用

计算机的特点

1.工作自动化
2.运算速度快
3.计算精度高
4.较强的记忆能力
5.逻辑思维和判断能力
6.通用性强

计算机的应用

1.科学计算
2.数据处理
3.过程控制/实时控制
4.辅助技术
5.人工智能
6.多媒体技术,计算机网络等其他方面

数据对象与运算

数据对象

数 据 类 型    =    { 基 本 类 型 : 整 型 、 实 型 、 字 符 型 指 针 类 型 构 造 类 型 : 枚 举 、 数 组 、 结 构 体 、 共 用 体 空 类 型 数据类型\;=\; \begin{cases}基本类型:整型、实型、字符型\\指针类型\\构造类型:枚举、数组、结构体、共用体\\空类型 \end{cases} =

整型

  • 进制
    • 十进制:46,-23
    • 八进制:0456
    • 十六进制:0x456
  • 变量的字长(在内存中所占的空间大小)取决于C编译器。
    如,VSC++编译器是win 32环境下的,int在VSC++中int就是32位
  • 整型常量的定义形式
int const a = 30;
const int a = 30;

实型(浮点型)

  • 常量的两种表现形式
    • 小数形式(必须有小数点),小数点前或后可无数字
    • 指数形式(科学计数法),用指数形式输出时按规范化形式输出
  • 浮点型
    • float 有效数字6~7位 4字节 − 3.4 × 1 0 38   3.4 × 1 0 38 -3.4\times10^{38}~3.4\times10^{38} 3.4×1038 3.4×1038
    • double 有效数字15~16位 8字节 − 1.7 × 1 0 − 308   1.7 × 10308 -1.7\times10^{-308}~1.7\times10{308} 1.7×10308 1.7×10308
    • 存储格式由IEEE规定,与int不同

字符型

  • 常量
    • 普通 ‘2’
    • 转义 \t
  • 变量:1个字节,8位
  • 字符串常量,只能存储到字符数组中,以’\0’结尾

数据运算

算术运算

  • 算术运算符
    优先级:
    ++(后缀),–(后缀)👉++(前缀),–(前缀),-(负)👉*,/,%👉+,-
    结合性:
    ++(后缀),–(后缀),++(前缀),–(前缀),-(负)右结合
    +,-,*,% 左结合
    整数/整数 = 整数
  • 算数运算符中数据类型转换规则
    1
    1### 关系与逻辑运算
    a = b > c $    ⟺    \iff a = ( b > c)
  • 逻辑运算符:!,||,&&
    exp1 || exp2,只要exp1为真,整个表达式为真,与exp2值无关

赋值运算

位运算(主要用于逻辑控制)

~ 按位取反
<< 左移
>> 右移
& 按位与
| 按位或
^ 按位异或

变量的作用域与生命周期

  • 变量的作用:存储原始数据,存储中间结果,存储最终结果
  • 变量的作用域:局部变量,全局变量
    • 局部变量:本函数范围内有效(形参变量,主函数main()中定义的变量,复合语句中定义的变量)
    • 全局变量属于一个源程序文件,作用域从定义该变量的位置开始至整个源程序文件结束及有extern说明的其他源文件
      • 在函数中使用全局变量,一般应做全局变量说明。全局变量说明可以扩展变量的作用域。说明符为extern。但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明
      • 若外部变量与局部变量同名,则外部变量被屏蔽。要引用全局变量,在变量名前加::
      • 尽量少使用全局变量(占用内存时间长;降低函数独立性)

动态内存管理函数

内存划分

在这里插入图片描述

  • 堆区:允许程序运行时,动态地申请存储空间,一般由程序员分配及释放,若不释放,将导致”内存泄漏“,空间被占用但没有使用,系统不知道谁在使用
  • 栈区:编译器自动分配与释放,主要用于存放函数的参数,局部变量等对象的值
  • 数据段:只读数据段、已被初始化的读写数据段和未初始化段

存储方式

  • 静态存储方式:程序编译期间分配固定的存储空间。在程序运行时,在静态存储区为其分配空间。在变量定义时就分配存储单元并一直占用直至整个程序运行结束(全局变量,局部静态变量等)
  • 动态存储方式:在程序运行期间进行动态的分配存储空间的方式。程序运行时在动态存储去为其分配空间(函数的形态,定义的动态变量等)

存储分配

  • 静态存储分配:程序中定义的动态对象一般在栈上分配其存储空间,分配与释放由系统完成
  • 动态存储分配:程序运行前无法确定空间大小, 采用动态申请内存分配,系统将在堆上分配其需要的空间,分配与释放由程序员负责
  • 动态空间的申请与释放:C语言允许越界使用,但超过范围之后的正确性不能保证
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值