记录教材重点,誊写个人理解,记录学习步骤
前言
上一次学习C语言是在三年前,今日有幸因为未来的人生规划重拾这一项技能。 在接下来的2个月内我将复习过往知识,学习新的知识 短期目标<2022.1.20>前至少完成“指针前所有章节并熟练使用” 每周日更新博客,以监督自己的学习进度提示:以下是本篇文章正文内容,下面案例可供参考
1.什么是C语言?
C语言是在 70 年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。
同时由 B.W.Kernighan 和 D.M.Ritchit 合著了著名的“THE C PROGRAMMING LANGUAGE”一书。通常简称
为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准 C 语言,后来由
美国国家标准协会(American National Standards Institute)在此基础上制定了一个 C 语言标准,于一九八三
年发表。通常称之为 ANSI C ——摘自C语言程序设计第四版
1.1对于我个人而言C语言是什么?
首先C语言是我接触的第一项计算机编程语言也是它提起了我编程的兴趣,对于我来说它更像是我的启蒙老师,而
当初我仅学习了一半的C语言便有幸入选校集训队,在后来也有接触Java、Android、Python(熟练顺序),再后来
更是因为比赛的要求长时间未接触编程语言对此已是非常生疏,所以才有了这篇文章再未来的一段时间内我将会抽
空自学C语言并同步更新博客,对于重要知识进行详细誊抄记录。
----------------------------------------------------------------------------------------------------------------------------
2.1<了解程序>程序的灵魂—算法
2.1.一个程序的基本构成
一个程序应该包括:
对数据的描述,那么在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)
对操作的描述,即操作步骤,也就是算法(algorithm)
Nikiklaus Wirth 提出的公式:
数据结构+算法=程序
C语言程序设计教材认为:
程序=算法+数据结构+程序设计方法+语言工具和环境
2.2算法的概念
做任何事情都有一定的步骤,为了解决一个问题而采取的方法和步骤,在编程语言内就称之为“算法”。
计算机算法:计算机能够执行的算法
计算机算法可以分为两大类:
数值运算算法:用于求解数值
非数值运算算法:事务管理领域
2.3简单算法举例
【例2.2.1】求求 1×2×3×4×5的值
【例2.2.2】有 50 个学生,要求将他们之中成绩在 80 分以上者打印出来
【例2.2.3】判定 2000 — 2500 年中的每一年是否闰年,将结果输出
【例2.2.4】对一个大于或等于 3 的正整数,判断它是不是一个素数
【例2.2.5】1-(1/2)+(1/3)-(1/4)…+(1/99)-(1/100)
【例2.2.6】有 50 个学生,要求将他们之中成绩在 80 分以上者打印出来
2.4算法的特性
- 有穷性:一个算法应包含有限的操作步骤而不能是无限的
- 确定性:算法中每一个步骤应当是确定的,而不能是随意的,必须遵守逻辑性
- 有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果
- 有零个或多个输入
- 有一个或多个输出
<对于一个程序设计人员,必须学会设计算法,并根据合理的算法写出高效率的程序>
-曾经的学习不过是盲目敲击键盘写出一行行代码,从未了解算法是什么,总是认为算法是什么高深莫测的东西却未曾想算法这种东西早已陪伴我不止三年
2.5二单元总结
算法能够帮助我们更加便捷的去计算一道问题,但是提前是我们需要去了解题目的逻辑性而不是一味的去赋值计算 让程序具有逻辑性才能够让计算机以更高效的方式将我们想要的答案输出出来 所以很显然对算法的运用程度能够更好的提高我们的工作效率——2021/11/263.<定义变量性质>数据类型、运算符、表达式
3.1.C语言的数据类型
C语言的程序中使用的各种变量都需要预先加以定义,即先定义后使用,对于变量的定义可以有以下三个方面:
- 数据类型
- 存储类型
- 作用域
其中数据类型可以被细分为:基本数据类型,构造数据类型,指针类型,空类型四个大类。
3.2.1基本类型:
基本类型的特点是确定性,它的值不能被分解为其它类型,主要用途是自我说明
3.2.2构造数据类型:
构造数据类型的值可以分解为若干个“成员”或者“元素”,每一个“成员”都是一个基本数据类型或者是一个构造类型
<因未细学对于构造类型并没有过多的了解,在未来会重新补充该注释>
3.2.3指针类型:
指针是一种特殊的数据类型,它的值用于表示某个变量在内储存期中的地址<未涉及,后期会补充>
3.2.4空类型:
空类型:在调用函数值时,通常应向调用者返回一个函数值,而这个返回的函数值是具有一定的数据类型的
例如求最大值的函数int max(int a,int b);其中“int”类型说明了返回值为整型值,而有一类函数不需要向调用者返回函数值
这种函数就被定义为“空类型”其说明符为void<常见却少用,但是依旧是一种不可或缺的数据类型后续会有涉猎再补充>
3.3.常量与变量
对于基本数据类型而言,按期取值的属性又可分为常量和变量两种
在程序执行过程中其值不发生改变的称之为常量<常量可以不经过说明直接使用>
其中又可结合数据类型来分类出:整型常量,浮点常量,字符常量,枚举常量
在程序执行过程中其值可发生改变的称之为变量<变量必须先定义后使用>
其中又可结合数据类型来分类出:整型变量,浮点变量,字符变量,枚举变量
3.3.1常量和符号常量
在程序执行过程中其值不发生改变的量成为常量
- 直接常量可分为
整型常量:1、2、-3
浮点型常量:4.5、7.6、-8.9
字符常量:‘a’、‘b’
标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。
符号常量:用标标识符代表一个常量 称之为符号常量<常量标识符用大写字母,变量标识符用小写字母以示区别例如:A[a]>
3.4.整型数据
3.4.1整型常数的表示方法
整型常数就是整常数,在C语言中使用的整常数有八进制、十进制、十六进制三种
八进制数码取值为0-7
十进制数码取值为0-9
十六进制数码取值为0-9以及 A-F
特别补充:当整常数超过表示范围就必须用长整型数来表示,长整型数是用后缀"L"或"l"来表示
<各种进制不作过多解释有需求可以自行搜索资料了解>
3.4.2整型变量
3.4.2.1整型数据在内存中的存放形式
假定我们定义了一个整型变量i并为其赋值,那么将写作:
int i ;
i=10;
如果是求-10的补码则在10的基础上取补码再加1即为-10的补码
3.4.2.2整型变量的分类
- 基本型:类型说明符为 int,在内存中占 2 个字节
- 短整量:类型说明符为 short int 或 short,所占字节和取值范围均与基本型相同
- 长整型:类型说明符为 long int 或 long,在内存中占 4 个字节
- 无符号型:类型说明符为 unsigned
无符号型又可与上述三种类型匹配而构成:
无符号基本型:类型说明符为 unsigned int 或 unsigned
无符号短整型:类型说明符为 unsigned short
无符号长整型:类型说明符为 unsigned long
有符号整型变量最大值为32767
无符号整型变量最大值为65535
3.x.x.三单元总结
符号常量与变量不同,它的值在其作用域内不能改变,也不能再被赋值。