考研笔记之速过408基础C语言

前言

因为决定要考研,于是看王道的408课程,大部分内容我都有基础,所以看得很快,笔记记得很精简,主要目的是维持一个知识体系的完整性。至于详细性就略有不足了。

因为大体东西我学过,所以主要记的东西都是边角料,仅作为我的小字典记录。后面贴图片较多,因为方便有效。图片也是经过筛选的,如果一股脑把全部的课件都放上来,不仅看都不会看,更是糊弄自己的。

开始总结之后才发现有很多基础的东西遗忘了,虽然感觉就算八股文也不会考得这么细致。但也全部放上来吧。

01.课程导学,编程环境搭建

C语言学习常见问题

7条

如何学习课程

1.每周按进度,看视频(非常重要),学习课程,写作业,展示慕课视频学习方法

2.有问题及时提问。(老师箴言:聊那些乱七八糟的东西是没有用的,那个都太遥远了,做好当下,你才能够在未来有更多的选择,你现在做很多想象那是没有用的。你不去提升你的实力,你选择不了任何东西。等你到了那个层次,你才有资格谈论工作行情一类的事情吧)

3.注意查看常见问题总结(课件里面没有)

4.大三的同学(尤其是跨专业的不建议参加蓝桥杯,复试更加看重项目)

5.前三节课程免费试听

02.数据的类型、数据的输入输出

printf的输出默认是右对齐,不是左对齐。如果需要左对齐,那么加入负号。

img

img

img

03.运算符与表达式

img

img

04.选择、循环

复习上节课内容

img

多分支语句的执行顺序

img

img

img

05.一维数组与字符数组

img

写后者显得自己很懂,写前者给人印象你不懂。

img

不要这么写,初试的时候没人会数你的数组有几个元素。

数组越界访问与数组的传递

img

imgimgimg

贴一段数组传递章节自己的代码笔记

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>

/*

* 数组传递到子函数后,子函数的形参接收到的是数组的起始地址。

* 因此不能把数组的长度传递给子函数

*/

//写成int a[]更加专业,不用往里面加数组长度。

//你用额外传进去一个数组长度,写成int a[5]里面的数组长度是传不过去的,老师会觉得你不懂

void print(int a[],int len)

{

int i;

for(i=0;i<len;i++)

{

printf("%3d",a[i]);

}

a[3]=20;

printf("\n");

}

int main() {

int a[5]={1,2,3,4,5};

print(a,5);//数组在传递给子函数时候,它的长度传递不过去。

printf("a[3]=%d\n",a[3]);//a[3]发生了改变

return 0;

}

imgimgimg

5.5【课件】gets与puts讲解,strlen-strcmp-strcpy讲解

imgimgimgimg

06.指针

这一章有点温故而知新的感觉,所以我就全部放上来了。有一说一,王道讲的比上课讲的好多了。

6.2【课件】指针的本质(间接访问原理)讲解

imgimg

6.3【课件】指针的传递使用场景

imgimgimg

6.4【课件】指针的偏移使用场景

imgimgimg

6.5【课件】指针与malloc动态内存申请,栈与堆的差异

imgimgimgimg

07.函数

C语言的函数不能嵌套定义,可以嵌套调用。

这一章概念性的东西比较多,我还是全部放上来作为字典忘了的时候查阅就好了。

imgimgimgimgimgimgimgimg

08.结构体与C++引用讲解

全部照搬

imgimgimgimgimgimgimg

imgimgimg

6.26简单的补充更新

多个文件

一般是把函数的定义放在函数的调用的上面

如果把函数的定义放在函数的调用的下面,就会报错

// 需要将函数的声明放在最前面
//遵守先声明,后调用

我们现在要将函数从main.c里面拿出来,放到func.c里面

要怎么用呢

打勾是为了把两个.c文件,一并编译到一个可执行文件里面

img

如果你是手动拖进来的,你就要手动再这里面添加fun.c

加一个.h的,他又自动放进来了

img

自动生成的一个重要说明

img

这是为了防止头文件的重复包含的

我们将公共使用的头文件放到 func.h里面

像是

img

1
然后再main.c里面引用#include "func.h"

就行了

img

双引号意思是在当面目录下找我们自己定义的头文件

然后我们要将函数的声明都放到fun.h里面

因为fun.c和main.c都有可能要调用函数

记住要遵循的就是

函数的声明放在fun.h

函数的定义放在fun.c

函数的调用则是main,c和fun.c都有可能

img

最后有一个函数的定义与声明是不一样的

但是变量的定义与声明是差不多的

C++ 文件和流

的学习博客

菜鸟教程

https://www.runoob.com/cplusplus/cpp-files-streams.html

#define相当于直接替换,

也就是说看到FILETYPE就换成int

https://www.google.com/search?q=%23define%E7%9B%B8%E5%BD%93%E4%BA%8E%E4%BB%80%E4%B9%88&oq=%23define%E7%9B%B8%E5%BD%93%E4%BA%8E%E4%BB%80%E4%B9%88&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIHCAEQABiiBDIHCAIQABiiBDIHCAMQABiiBNIBCTExMzE2ajBqN6gCALACAA&sourceid=chrome&ie=UTF-8

https://blog.csdn.net/qq_44584493/article/details/87631803

https://www.runoob.com/note/24230

这三个number可以用来干嘛,然后就是vector这是一个字符串容器,使用方法见

https://blog.csdn.net/geekdoe/article/details/50731833

https://www.w3cschool.cn/cpp/cpp-fu8l2ppt.html

https://blog.csdn.net/sevenjoin/article/details/81943864

总结:将所有的头文件存储在 include 文件夹下,将所有的 .cpp 文件存储在 source 文件夹下。总之项目越大,多文件编程的优势越明显。

https://blog.csdn.net/jinxianwei1999/article/details/123262099