新手如何学好C语言?

article/2025/11/6 17:19:22

作为一名资深码农,在软件行业也拼搏了十多年,这里跟想学习C语言的萌新童鞋分享下我的个人学习心得!!!

在大学时代,我们大二才开始学习C语言(起步有点晚啊),第一次看到那本黄黄的谭浩强老师的《c语言教程》,哈哈哈,就是这本了,满满的回忆啊!

开学拿到这本书后,心情很激动,因为以前总是羡慕那种黑客,好像很牛的样子, 抱着好奇的心理随便翻开了几页看了看,全程一脸懵逼, 因为以前从来没有接触过编程,所以犹如读天书。没事,才接触肯定是这样的,没关系,看不懂咱们来硬看!!!

       我学习中记忆很深刻的是才开始看数据类型,什么整数,字符类型,浮点数,在这段知识点还勉强可以看懂,只是各种数据类型的范围还弄不明白,因为是数字范围,比如无符号整数,浮点数这种

0 ~ 2^32-1(4 294 967 295)
-2^31(-2 147 483 648) ~ 2^31-1(2 147 483 647)

这种, 搞不清楚!!! 所以就跳过了,然后看到变量赋值这个知识点,我也是混淆了好久,一直搞不明白  为什么 

a=100;

不是比较,可能是以前数学思维, = 就是相等的意思。现在才明白,这个是赋值,把值塞到变量a中。。。

        总之,我还是萌新的时候,经历了和大家一样的心路历程,现在看来,这些知识点太简单了!后面我就反复抱着书本啃,一点一点的理解,最终70%还是能看懂了,所以在这里,首先告诉大家,编程的这些语法,概念看不懂,千万不要害怕, 一回生二回熟,多啃几遍,逐渐你会发现你渐渐能看懂了,而不是看一遍之后,觉得看不懂,就不在看了,这样你就会越来越迷糊!!!就这样课前做好预习,上课听老师认真讲解,我的c语言学的非常顺利,比其他同学学的都比较快,但是我们班普遍反馈c语言特别难!后面由于突出的表现,被我们的C语言老师(但是是计算机学院副院长)看中,帮老师代课,哈哈哈!!!

     前面说了这么多,就是想告诉大家,我在学校学C语言的时候,也是萌新小白一个,并没有很高的起点,连我竟然都能学好,你也一定可以学好,那么下面我来跟大家重点说下,学习C语言中应该侧重的知识点,C语言的知识点,其实并不是很多。

    先说基础的语法,那么数据类型你肯定得记住啊,相当编程界的1+1=2 ,这些太简单了

数据类型描述大小范围
char字符1字节-128  ~   127
short短整型2字节-32768 ~  -32767
int整型4字节-2 147 483 648  ~    2 147 483 647
long长整型4字节-2 147 483 648  ~    2 147 483 647
float单精度浮点型4字节-/+3.4e38(精确到6位小数)
double双精度浮点型8字节-/+1.7e308(精确到15位小数)

 然后变量的赋值,这个必须理解啊:

写法含义
a = 2 把2这个值塞到a中,让a里面的值变成 2
a==2这个才是数学中的比较 两个是否相等
2 = a错误写法,  2 是常量,没法往里面塞,只能往变量里面塞

a = b

可以往变量里面塞

在这两者的基础上,你需要理解一些流程,也就是我们写代码的基本结构

结构代码说明

循环

for         while       do-while三种循环

判断

if  else  条件判断
选择switch case选择分支
跳出语句continue    break用于上面三种结构

还有一个重要的概念,函数

函数类型 
int   main(int argc ,char **agv)主函数,程序的入口
int  fun(int a, int b )有参数,有返回值的普通函数

 

基本上,上面都属于比较简单的概念,好,下面难度升级的知识点来了!!!

   数组,c语言中的第一个难点

数组举例难度
一维数组int a[5]={1,2,3,4,5}    简单
二维数组int a[2][3]={  {1,2,3},{4,5,6} }复杂
字符数组char  a[3]={  'a',  'b',  'c'  }简单

字符串产生的

一个字符数组

char a[]="abc";  很难理解区别啊

自定义类型,c语言第二个难点

自定义类型举例难度
struct

struct   Stu

{

   int age;

   char name[10];

}

中等
union

union Addr

{

   int age;

   char name[10];

}

复杂,与结构体的区别

指针,C语言的终极难点,大家的噩梦来了,但是这个就是C的精华,掌握这个,才能说你真正的会c语言了

类型举例难度
指针概念

就是一个变量而已, 存放了一个地址值

 

int *a = 0xfffe1824;

char *b = &c

复杂
数组指针

int a[3

int *p= a;

 

int b[3][4]

int (*p)[4] = b;

 

 

int *c[3]

int **p=c;

超复杂
函数指针

int fun(int a,int b)

{

}

 

int (*p)(int ,int );

p = fun;

超复杂

链表:把上面指针与结构体学透了,就开始挑战链表吧

链表类型举例难度

单向链表

单项循环链表

struct Node

{

   int data;

   Node * next;

}

中的

双向链表

双向循环链表

struct Node

{

   int data;

  Node * prev;

   Node * next;

}

复杂
链表操作头插,尾插, 删除,反向,修改复杂

     文件收尾,结束你的C语言阶段!!!

文件操作举例难度
文本文件FILE *  fp= fopen("1.txt","r")中等
二进制文件FILE *  fp= fopen("1.txt","rb")中等
文件指针的移动fseek复杂

 

其实,个人认为,大学里面C语言的知识点真心不多,大家只要掌握我上面列出的知识点,其实就差不多了,核心的我已经用红色背景标注了,掌握这几门核心,其实你的c语言应该很不错了,如果你有不同意见,评论区告诉我!!!

当然我也把这些知识点整理为了一个课程学习包《一站式C语言全套开发》,大家有兴趣可以去看看

https://edu.csdn.net/combo/detail/1024


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

相关文章

完全卸载nginx的详细步骤

一个执着于技术的公众号 前言 在开局配置Nginx时有可能会配置错误,报各种错误代码。看不懂或者懒得去看这个报错时,其实最简单的方式是卸载并重装咯。今天就带大家一起学习下,如何彻底卸载nginx程序。 卸载nginx程序的详细步骤 1、停止Nginx软…

Linux中完全卸载nginx及安装的详细步骤

前言 在开局配置Nginx时有可能会配置错误,报各种错误代码。看不懂或者懒得去看这个报错时,其实最简单的方式是卸载并重装咯。今天就带大家一起学习下,如何彻底卸载nginx程序。 一、卸载NGINX 卸载nginx程序的详细步骤 1、停止Nginx软件 …

Linux 下卸载nginx的操作步骤(亲测有效)

亲测有效,傻瓜式步骤,按着步骤来你也可以成功卸载nginx!!! 1.执行命令,看nginx是否在运行 ps -ef|grep nginx 上图可看出nginx在运行状态,接下来 2.到nginx的安装目录下 cd /tmp/upload/software/nginx 3.输入停止…

Centos7安装、卸载nginx及配置,配置成系统服务(一步到位)

目录 前言 一、下载安装解压 1.进入临时文件夹里(随便一个都行) 2.下载并安装nginx压缩包 3.解压该压缩包 4.创建目标文件夹 5.(默认会安装在/usr/local/nginx)这里通过configure命令指定安装目录 6.编译安装 7.最后生成的…

CentOS7卸载Nginx、最后有命令总结

第一步、查看Nginx的进程 命令 :ps aux | grep nginx 下图表示Nginx启动 下图表示Nginx没有启动 第二步、如果Nginx没有启动就可以跳过这个步骤了;如果是启动状态的话用下面命令进行停止; 先通过可命令1找到对应目录在执行命令2 命令1&#x…

安装、卸载nginx(基于Centos7)

一、卸载: 1、检查任务进程: ps -ef|grep nginx (有活动进程,kill 掉 ) kill -9 进程ID2、查看nginx相关文件 find / -name nginx 3、文件删除 4、检查依赖 yum remove nginx 二、安装: 1…

Windows下cmd卸载nginx服务

文章目录 一、Windows卸载nginx服务1.以管理员身份运行CMD2.进入到安装的nginx目录下3.卸载nginx服务 一、Windows卸载nginx服务 1.以管理员身份运行CMD 2.进入到安装的nginx目录下 3.卸载nginx服务 命令:nginx-service.exe uninstall #nginx服务卸载后再次执…

linux 下卸载nginx的操作步骤

linux 下卸载nginx的操作步骤 1.执行命令,看nginx是否在运行 ps -ef|grep nginx 2.如上图,发现nginx是在运行状态,所以停止nginx服务 注意,要进入到nginx的目录,执行命令 ./nginx -s stop 3.删除nginx相关内容 首先…

nginx配置详解,完全卸载nginx, nginx https配置

nginx 配置文件详解 文章目录 nginx 配置文件详解Ubuntu nginx 目录结构nginx 配置文件结构默认nginx.conf( (1.18.0版本)location详解,proxy_pass详解https配置,https转发http配置负载均衡配置 完全卸载nginx Ubuntu nginx 目录结构 默认的目录结构 旧…

Nginx安装、卸载教程(含Window、Linux版、Docker版)

目录 一、下载 二、Linux版安装 2.1 编译安装之前 2.2 编译安装 2.3 启动Nginx 2.4 关于防火墙 2.5 安装成系统服务 三、Linux版卸载(彻底) 3.1 检查一下Nginx服务是否在运行 3.2 停止Nginx服务 3.3 查找、删除Nginx相关文件 3.4 再使用yum清…

Nginx卸载

1.首先输入命令 ps -ef | grep nginx检查一下nginx服务是否在运行。 [rootlocalhost /]# ps -ef |grep nginx root 3163 2643 0 14:08 tty1 00:00:00 man nginx root 5427 1 0 14:50 ? 00:00:00 nginx: master process nginx nginx 542…

完全卸载nginx及安装的详细步骤

前言 在开局配置Nginx时有可能会配置错误,报各种错误代码。看不懂或者懒得去看这个报错时,其实最简单的方式是卸载并重装咯。今天就带大家一起学习下,如何彻底卸载nginx程序。 一、卸载NGINX 卸载nginx程序的详细步骤 1、停止Nginx软件 …

【Nginx】彻底卸载Nginx以及安装Nginx的详细教程

今天尚硅谷出了新版的Nginx教程,感觉之前的教程有点浅所以我决定再看一遍,然后开始看之前要把之前的Nginx卸载掉。在安装教程对应版本的Nginx,这样看教程的时候错误可能会少一点。 目录 一、卸载Nginx 1、检查一下nginx服务是否在运行 2、…

三点求圆算法

圆的一般方程, 三个点确定三条方程,为了求出四个未知数再写一个在圆上的点凑成行列式 由克拉默法则得,齐次方程有非零解,那么行列式为零: 把行列式按第一行展开后可以得出 这个行列式怎么算就不说了。

通过点拟合圆

通过点拟合圆 三点确定一个圆多点拟合一个圆 三点确定一个圆 参考代码: matlab空间三点求圆心 代码中使用的算法原理是:三个点确定两个线段,圆心位于两个线段的中垂线上,所以圆心坐标符合两个中垂线的性质,具体推导如下&#xff…

如何判断点是否在圆弧上

如何判断点是否在圆弧上 已知一个圆弧三点,A(起点),B(中点),C(结束点)。 可以求出圆心、半径 红色的分别是圆上的起点、中点、结束点。 1、首先判断圆心到某点P的距离,是否等于半径。 如果不等于半径,则不在圆上…

空间三点确定圆心坐标及半径

问题: 已知空间三点坐标: P 1 ( x 1 , y 1 , z 1 ) P_{1}(x_{1}, y_{1} ,z_{1}) P1​(x1​,y1​,z1​) P 2 ( x 2 , y 2 , z 2 ) P_{2}(x_{2}, y_{2} ,z_{2}) P2​(x2​,y2​,z2​) P 3 ( x 3 , y 3 , z 3 ) P_{3}(x_{3}, y_{3} ,z_{3}) P3​(x3​,y…

空间三点定圆的解算过程

记得去年在上海船厂期间一次员工要我们检测一个圆形构件,用全站仪在一圆形构件的同一高度上测得三个点,然后算出构件的圆心坐标和半径,数学模型如下: 已知空间三点的坐标为(x1,y1,z1),(x2,y2,z2),(x3,y3,z3…

三点定圆推导公式

不共线的三个点可以确定一个圆。 下图是用Graph画的一个很粗糙的图片用于方便理解。 紫色的线分别为AB的中垂线和AC的中垂线。 两个中垂线的交点就是圆心。 圆心到三个点的距离都相等。 推导公式 参考博客:三点确定一个圆的计算方法 设圆心坐标O为 ( x 0 , y …