C语言学习笔记-1
博主马上大一了,看着必修的里面肯定有C语言,加上自己家里有一些书,自己决定写个小小的机器学习项目来学一学C语言。
仓库:简陋的机器学习
说是学习笔记,其实应该更像是吐槽大会一样
写在前面(叠甲)
刷到这个小众个人网站的人肯定要么认识我,要么在线上认识我,不排除以后我出名了有人来考古,在这里先叠个甲。
在写这篇文章的时候,本人是个纯正的菜鸡,看到也不要喷我
好的叠甲完毕,开始正文
程序部分
函数
函数其实很简单,可以用下面这些来定义一个函数
1 | int new_function() |
最多能用到的,估计就是一个可以输入参数的函数,他长这样
1 | int new_function( int *matrix , int x , int y ) |
这就是一个可以输入参数的函数。有一个需要注意的点就是,如果输入的是一个数组且你需要导入的数组长和宽都不定,那么你需要先把整个数组一维化,然后再进行后续的操作。
1 | int new_function( int *matrix , int x , int y) |
数组
然后来到了数组,先上图

数组,顾名思义,就是把数绑成一组,这里先介绍一维数组和二维数组,分别如上图所示。
具体有什么用请自行探索,这里只说明几个关键的地方
数组的定义模式
数组的定义模式和高中的坐标系不同,数组可以理解为“有几个组?”和“组里有几个元素?”这两个问题,例如上面的部分代码:
1 | int matrix[3][4] = { |
这是一个有三组,每组有四个元素的数组,而不是横向有三列纵向有四行的表,这个和坐标系有所区别
数组的转换
数组在被传入函数的时候必须变成指针,也就是你只能输入一个数组在内存里的起始位置,想要获取数组中的信息,就需要你自己拼凑出完整的地址,从而获取到数组内的元素,如下图:

我相信这张图可以直观地让你感受到电脑是怎么在操作你的数据的,也得归功于电脑的SB设计源自于电脑内存的地址设计,我们只能这样通过换算地址的方式去完成数据的存取,比如这样:

关于你能不能读取更远或者后面的数据,请详见操作系统相关内容。
返回值
返回值是个很有用的东西,他可以负责函数内部和外部的结果传递,返回值不一定是一个数字,也可以是数组,字符串或者其他东西。
比如我们做了一个比较两者大小的小程序:
1 | int max( int x , int y ) |
工具部分
本人使用的是VScode搭配GCC(minGW64)所以断点和调试器基本不用做配置,gcc给出来的原生报错已经很完善了,所以不怎么需要调整,考虑到以后可能使用Linux,准备学一学Vim作为备用
这里介绍几个比较好用的工具吧
报错
报错是重要的程序错误的获得来源之一,根据报错我们可以获得很多信息,举个例子:
1 | //try.cpp |
上面是一段错误的程序,找找错误在哪里
小小的解答
当你尝试编译的时候,就会出现下面的部分
1 | PS E:\AchieveBox> gcc try.cpp -o try.exe |
这里编译器就会告诉你,在第十六行的最末尾的地方有一个缺失的部分,但是有部分编译器会选择把这种错误报到第十七行,所以有时候某一行报错并不意味着某一行有问题,有可能它的上下出现了一些问题。
调试模式
由于本人使用的是minGW的编译器,所以顺带就使用GDB作为调试
调试模式允许你通过添加断点的方式把程序停下来,然后逐步执行,这样就可以逐步排查程序里面哪些东西出了问题
例如下面这个错误:
1 | //try.cpp |
你先手动算一下,然后再复制到编译器里编译一下,你就会发现有问题
小小的解答
这个地方涉及到了C语言中int类型的范围,int,也就是整型,只能支持储存整数,他会把数直接从整数部分截断,然后储存进固定的内存地址
遇到这种问题,一是考验你对于C语言的各种标准熟不熟悉,第二可以通过调试发现问题,请看下面两张调试图:


被高亮的一行是马上就要开始执行的一行,从第一张图就可以看出,a的初始化是正确的,但是b的初始化出现了明显的问题,6.2被储存成了6,导致最后的结果和预想的不同。
对于这个问题,可以采用更改变量类型的方式,允许小数部分参与运算:
1 | //try.cpp correct ver |
尾章
这不是教程,也不是课件,只是一个人小小的笔记,希望能够帮到一些人
- Title: C语言学习笔记-1
- Author: Matrix Xu
- Created at : 2026-07-21 15:59:41
- Updated at : 2026-07-22 18:42:01
- Link: https://www.matrix060.top/2026/07/21/C语言学习笔记-1/
- License: This work is licensed under CC BY-NC-SA 4.0.