树莓派(0)C语言教材学习

学习日记的功能主要是记录学习C语言的知识还有难上手的地方,之后会记录配置树莓派环境还有设计linux环境下C语言的实验题目

目前在K&R的《C语言程序设计》教材学习,前面的内容没有难度,基本上和高级程序设计语言的学习思路一样,主要是为了了解C语言
类型、运算符、表达式、流控制,函数和程序结构、指针与数组、结构、输入与输出、UNIX系统接口的内容,最后会有参考手册和标准坤的内容。大概期望的学习程度能够熟练运用C语言的语言特性,能够看懂C语言的知识点,同时在树莓派上设计C语言实验题目。

下面的内容有自己在学习中遇到的问题
1、编写头文件;自己的头文件使用“”来进行编写,代替“<>”

2、在使用多文件编译是,我使用的是VScode的code runner,我懒得配置launch和tasks的json文件,我修改了code runner插件的配置文件,每次运行代码都将同目录下的所有的C文件编译一次,所以可以达到我的目的,至于能不能跨文件夹来编译,暂时不考虑。
在这里插入图片描述

第一章导言的部分是通过华氏温度和摄氏度展缓的程序来对c语言介绍,注意几个地方
1、在C语言中,char类型的数值和int 类型是相同的,这里直接将char类型的ascll数值转化为int;类型,所以很多char类型的数值是通过int 定义的。
2、注意特殊字符‘‘\n’’,'\t’之类的。
在这里插入图片描述

3、注意printf和scanf两个输出输入的用法
转义字符的使用
(太过枯燥寄不过来,什么时候用到什么时候再去看)

4、因为有了C++的基础,所以学习起来没有太多难度,难度还是在于进行程序的设计。

EOF是文件结束符的标志,在标准输入stdin中,EOF可以通过 ctrl+z来代替。

第一章就这些

第二章

第二章在讲运算相关的
1、数据的范围和长度,分有符号和无符号 unsigned ,unsigned char类型的范围为 0~255
2、在刚刚讲了一部分关于转移字符的内容

在这里插入图片描述3、枚举类型,大概每种语言都有类似的类型,这相当于语言中都有的。直接定义enum 就可以。没有显示说明,第一个元素值为0,
4、声明和定义不太相同,声明可以通过const 和 extern来进行声明,extern的具体应用:

在这里插入图片描述

C语言代码是由上到下依次执行的,不管是变量还是函数,原则上都要先定义再使用,否则就会报错

5、学会使用标准库中的函数,<stdio.h>,<cmath.h>,<ctype.h>,类似函数的学习通过算法题目来进行积累。

6、条件表达式、for、while控制循环流

第三章

控制循环流,没有笔记价值,这里注意的是,没有布尔类型,如果非0则是true,0是false,在C语言中0代表不执行。

第四章

1、函数的静态变量,静态函数,寄存器变量。比较偏底层的设计,把变量放在了寄存器中,利于底层开发,不利于开发服务。JAVA的便捷性和耗时性也就在这里了。
在这里插入图片描述
2、C预处理器,主要的是#define and #include ,后面还有typedef 用来替换类型名

第五章

1、指针与数组,指针指的是存储地址,数组名指的是存储第一个数组元素的地址,起始地址。
2、指针可以被赋值,但是数组名不可以被赋值。
3、理解指针的定义 int a = 3; int * p = &a ;
4、命令行参数,main( int argc, char * agrv[]) ,char * agrv[],在agrv数组村村的是char *类型的指针。 通常是char 类型的数组。
5、C语言值得诟病的是因为语法的简洁导致的复杂声明:
在这里插入图片描述

第六章 结构

自引用结构,结构里面不能再有结构,但是可以存在指向结构的指针。

1、hash算法和表查找
2、typedef char * String,一般来说都是大写字符开头。

第七章 标准输入与输出

这里想提一下C语言学习网站,网站的OJ不错,但是需要付费一个月28元,我觉得可以先充一个月试试看。

1、变长参数表,这里分析了printf和scanf是怎么样将数据赋值的。
在这里插入图片描述
在这里插入图片描述

3、文件访问,在stdio头文件中存在结构 FILE,设计函数fopen,存在函数getc和putc

在这里插入图片描述0,1,2分别代表标准输入、标准输出、标准错误

4、其他函数:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第八章 Unix环境下c语言相关的函数,接近操作系统,Unix系统接口

read、write、open、creat、close、unlink

1、fopen和getc的实现
2、目录列表的实现
3、存储分配程序

越偏向底层的内容和知识越抽象,因为没有试验条件。

印象深刻的是第五章复杂声明的代码片段,互相递归调用,代码的思想很棒。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值