CS50 2016-Week 1 学习笔记

来源:互联网 发布:铸造行业 利润 知乎 编辑:程序博客网 时间:2024/05/18 01:17

大二学过C语言,刚好手边就有 C语言程序设计 教材。

视频中的标准库、基本数据类型、变量、简单语句、函数、编程思想、数据溢出,都能在书中找到出处。

以后需要用C语言,再翻书,编程语言那么多,感觉核心的编程思想差别不大,只是语法不同。

C语言程序设计 书中概述,就有许多有用的信息:


  1. C 程序可由一个或多个函数构成,函数是C语言的基本单位。
  2. C程序必须有一个且只能有一个main函数,即主函数。
  3. 一个C程序总是从主函数开始执行,而不论主函数在整个程序中位置如何,主函数执行完了,整个程序也就执行完了。
  4. 一个函数由函数首部和函数体构成。
    函数首部是函数的第一行,包括了函数类型、函数名、函数参数等信息。
    函数体一般由声明部分和执行部分组成。
  5. C语言中变量和函数使用前需要声明。
  6. 用{ }括起来的部分,通常表示程序的某一层次的结构。
  7. 每一个语句都必须以分号结尾(除了编译预处理命令、函数体首部和{ }后面)。
  8. /**/为注释符,必须成对出现,二者之间的部分为注释内容。


variables : store something
= : assignment
%s %i %f are formatters ,later it will be replaced by the value on the right. C中为不同的输出规定了不同的格式字符,需要替代的内容为整型,用%i,需要替代的内容为字符,用%s

有两个知识点感觉很重要:

数据溢出:

C语言中常量变量的区别。

先是变量,用来保存数据,可以被赋值的一个名字。
变量可以是整型变量、实型变量和字符变量。
使用前需要用intfloatchar 这些关键词声明变量类型。

这里写图片描述

上诉变量只能存储1个字节到8个字节的数据,如果数据太多,就会溢出:

int变量为例:
int 变量能存储4个字节的数据,即32位,-11111111111111111111111111111111 ~ 11111111111111111111111111111111,-4294967295 ~ 4294967295

如果一个int 变量i的值为4294967295,再加1,11111111111111111111111111111111(4294967295)会变成00000000000000000000000000000000(0),就是数据溢出了。

这里写图片描述


误差累积

上面说过了数据溢出,计算机中没有分数的概念,只能用float类型来近似表示分数。0.3333333 来表示 1/3。0.100000来表示1/10。

而且计算机内部先将十进制小数转化成二进制数来运算,运算完又转化成十进制数,难免产生误差。一点点的误差累积就会成为大麻烦。

下面是float数据相除的例子(明显结果不太对)。

这里写图片描述

原创粉丝点击