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

article/2025/11/5 16:32:35

学习日记的功能主要是记录学习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、存储分配程序

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

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


http://chatgpt.dhexx.cn/article/BEclV0eL.shtml

相关文章

国内C语言教材中几种值得商榷的说法

作者&#xff1a;巨同升 “C语言程序设计”这门课程在国内高校普遍开设已有近三十年&#xff0c;课程的建设和研究取得了长足的进步&#xff0c;涌现出了数量众多、各具特色的C语言教材。尽管如此&#xff0c;在许多C语言教材中还或多或少地存在着一些不准确甚至是值得商榷的说…

既然谭浩强的C语言教材不好,那应该选什么书作C语言教材?

易道云学院C语言/C语法学习不在于你看了多少书&#xff0c;而在于你实实在在写了多少有效代码。易道云学院 回到这个问题&#xff0c;其实我个人认为&#xff0c;看什么样的书&#xff0c;也是需要应对不一样的场景易道云学院去有目的地涉猎。我暂时想到了几种情况&#xff0c;…

c语言课本答案解析宋士银,c语言教材

22.40定价&#xff1a;28.00(8折) /2007-02-01 根据教育部高等学校计算机科学与技术教学指导委员会提出的《关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求》的有关要求&#xff0c;编者组织了一批多年工作在教学一线且有丰富教学经验的教师编写了《…

C语言的环境变量配置

一、编辑器选择与安装 这边选用的编辑器是比较常见的devc&#xff0c;当然vscode和vc也都可以用来学习C语言&#xff0c;要软件和C语言环境变量的话可以加QQ群&#xff1a;373270625 第一步全部默认勾选就行无脑下一步 第二步选择一个放软件的文件夹&#xff0c;我这边选择的…

Jmeter环境变量配置

解压后 电脑桌面----》“计算机”图标----》鼠标右键选择“属性”----》点击高级系统设置----》高级---》环境变量页面 1.在系统变量框&#xff0c;点击“新建”&#xff0c;建立一个变量&#xff1a;JMETER_HOME,值为你解压的jmeter安装路径 2.配置classpath变量&#xff0c…

java设置环境变量jre_JRE环境变量配置图解

JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。如果大家需要查看JRE环境变量配置图解过程,看完本文你的问题也就迎刃而解了。 我们这里使用jre-7u67-windows-i586的32位JRE安装包,大小只有20多M,比JDK7小了…

Anaconda环境变量配置

Anaconda Anaconda环境变量配置 学习自用 解决问题 例如在VSCode中使用虚拟环境运行python代码导致的问题 *ImportError: DLL load failed while importing win32gui*新建系统变量&#xff0c;添加Anaconda安装路径 以后想用其他环境直接修改变量值就可以了 新建环境变量 变…

npm环境变量配置

NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具&#xff0c;能解决NodeJS代码部署上的很多问题&#xff0c;常见的使用场景有以下几种&#xff1a; 允许用户从NPM服务器下载别人编写的第三方包到本地使用。允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。…

windows 10中R的环境变量配置

创建于&#xff1a;20221113 修改于&#xff1a;20221113 文章目录 1、情况介绍2、环境变量配置3、参考资料 1、情况介绍 win10 64bit系统中&#xff0c;已经安装好了R&#xff0c;Rtools &#xff0c;Rstudio&#xff0c;并且已经配置了java开发环境。 上述两个链接讲述的非…

SVN环境变量配置

1、环境变量配置 2、复制地址 3、环境变量配置&#xff1a; 步骤: 右击电脑属性、高级系统设置、高级、环境变量、 系统变量、找到Path、双击进入、新建粘贴到刚刚复制的地址&#xff0c;确定即可。

Mac环境变量配置(Java)

1.打开终端&#xff1a; 2.输入命令&#xff1a;【/usr/libexec/java_home -V】,查看默认的jdk下载地址&#xff08;绿色下划线的就是jdk默认路径&#xff09;&#xff08;注意⚠️&#xff1a;命令行终端是区分大小写的【-v 是不对的&#xff0c;必须是大写 -V】&#xff09; …

adb环境变量配置

关于adb 什么ADB如何配置CMD命令窗口的使用 什么是adb 首先&#xff0c;我们先说说&#xff0c;adb是什么&#xff0c;他的全称叫安卓调试桥&#xff0c;也就是Android debug bridge &#xff0c;它是连接Windows平台和安卓手机之间的软件调试工具&#xff0c;很适合软件开发…

Android环境变量配置

1 先再到本地SDK位置&#xff0c;C:\Users\27322\AppData\Local\Android\Sdk ​ 本地SDK路径&#xff0c;android studio安装默认路径 2 新建环境变量&#xff1a;ANDROID_HOME&#xff0c;值&#xff1a;C:\Users\27322\AppData\Local\Android\Sdk ​ 右键我的电脑&#xff0…

node环境变量配置

首先&#xff0c;node被我安装在D盘 我下一步需求是&#xff0c;将系统默认的全局包下载路径&#xff08;C:\Users\Administrator\AppData\Roaming&#xff09;换到D盘下面&#xff0c;以减少C盘存储压力。 具体实施&#xff1a; 第一&#xff1a;在nodejs文件夹下&#xff0c…

python环境变量配置

python现在的版本&#xff0c;主要是python2和python3两个大版本&#xff0c;这两个版本有很大的不同。 当我们在自己电脑上同时安装了python2.x和python3.x版本的解释器的时候&#xff0c;就需要对环境变量的配置进行一定的修改。 【大概解释一下&#xff0c;我对环境变量的…

nodejs环境变量配置

1.右键"此电脑 - 属性" 2.左侧点击"高级系统设置" 3.点击环境变量 4.在系统变量下 新建【NODE_PATH】,设置第三方依赖包安装目录 D:\Program Files\nodejs\node_global\node_modules // node.js安装目录 5.在系统变量下的【Path】中&#xff0c;添加上n…

QT环境变量配置

QT官网地址&#xff1a;https://my.qt.io/ 一、windows系统 1.1 QT下载安装 1.2 进入Qt安装目录 1.3 拷贝gcc所在的路径&#xff08;不同安装目录有所差异 C:\Qt\Qt5.5.0\Tools\mingw492_32\bin 1.4 设置windows环境变量 计算机&#xff08;右击&#xff09;&#xff0d;> 属…

java环境变量 的配置与详解(全网最详细教程)

笔者这学期开始学习java课程&#xff0c;学习java开发首先需要配置java运行环境变量。虽然上课老师也讲了如何配置java环境变量&#xff0c;可是笔者的同学还是有好多都不会配置&#xff0c;所以笔者最近配置了特别多次java环境变量。如下笔者详细解释从JDK安装到环境变量的装配…

js向数组里添加元素

js中对于数组的操作很常见&#xff0c;下面记录一下js向数组添加元素的方法。 let myArray[11,22,33]; console.log(原数组&#xff1a;,myArray); myArray.push(44,55); console.log(用push在数组后面插入元素&#xff1a;,myArray); myArray.unshift(66,77); console.log(用…

JS | 数组新增元素

数组可以在一个变量中存放多个数据&#xff0c;相比于变量来说&#xff0c;存取数据是十分便捷的。今天我们来说一下如何给数组新增元素。 1.新增数组元素&#xff0c;修改length长度 var arr [red,green,blue];console.log(arr.length);arr.length 5;console.log(arr);cons…