作为一名资深码农,在软件行业也拼搏了十多年,这里跟想学习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

新手如何学好C语言?相关推荐

  1. 怎样学好C语言,一个成功人士的心得!

    今天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是他们发现了全部的数字化信息,不论是一段程序,一封email,一部电影都是用一连串的 ...

  2. 如何学好C语言,一个成功人士的心得!

    来源URL:http://blog.csdn.net/yxnk/article/details/5976699/ 今天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克 ...

  3. 大学期间,为啥我能学好C语言?只因我做到了这五点!

    学习C语言已经有一段时间了,对C也算得上半个入门者,期间也写过一些自娱自乐的代码.其实个人认为无论学习什么语言,最重要的是掌握习编程思想,然而C语言一种学习编程思想的基础语言.所以,C语言的重要性不言 ...

  4. 零基础如何学好C语言?

    经常有人会这样问"我没有一点基础,该如何入门C语言,该如何学好C语言 ?"看到很多初学者摸不到门路,我在这里制定了相应的学习计划,对于零基础新手一定会有很大的帮助. 很多新手认为学 ...

  5. 哔哩大学计算机学院:如何学好C语言

    目录 前言 一.工欲善其事必先利其器 二.怎么学好C语言 1.学习语法 2.必须画图理解,内存布局 3.调试,调试,再调试 总结 前言 想自学C语言自学看视频学不会,方法没掌握对?网上资料很多该怎么选 ...

  6. 新手如何学好C++?

    最近,很多学员都给我发邮件问我应该如何学习C++,如何学好C++? 那么作为一个从C语言小白摸爬滚打.入坑无数到成长为如今的高级C++游戏开发工程师.高级C++服务端工程师.项目经理.技术总监.我想跟 ...

  7. 讲谈初学者如何学好C语言(一)

    前言 关于这个C语言系列,我将讲谈初学者最关心的一系列问题. 对象:C语言零基础:有经验但是不够熟练的同学.(只要你有一颗热爱学习的心,这个系列一定能收获到你意想不到的知识) 大家主要关心问题如下: ...

  8. 作为一个编程新手如何学好Java编程?

    作为一个编程新手如何学好Java编程? 对于一个热衷于Java技术的程序员, 作为一个Java编程新手,掌握好下面的几个要点可以让你在众多Java开发人员中脱颖而出. 1.选择很重要 作为一个初学者, ...

  9. 语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程。...

    语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程. 为了将本人的python培训提高一个层次,本人最近买了很多算法的书. 这个书上的代码基本都是c语言实现的,c语言很久 ...

最新文章

  1. python 定义空集合 和定义空字典的
  2. 计算几何题中的英语生词
  3. C语言字符5,c语言总览5:字符输入和输出
  4. 全球四大互联网公司最大的敌人是谁
  5. matlab 通信工程,MATLAB 通信工程仿真
  6. cocos2dx-lua 骨骼动画spine使用心得(cocos2dx版本 3.17 spine版本3.6.53)
  7. eps提取高程点在哪里_Eps总结(3)——Eps使用点云生成等高线及高程点
  8. python数据拟合方法_Python-最小二乘法曲线拟合
  9. CocosCreator之粒子动画入门:飞机尾焰
  10. 声音莫名从扬声器切换到听筒_扬声器听筒的切换
  11. 巴斯大学计算机世界专业排名,巴斯大学有哪些专业_专业排名(上交世界排名)...
  12. 三维实景地图,从航测到建模,再到可视化平台
  13. 对代码签名另一种认识(下)
  14. NGINX配置ftp目录
  15. 统计学习方法 第二章 感知机
  16. C++解决《无重复字符的最长子串》问题(滑动窗口(unordered_set),string)
  17. 全面掌握前端框架Vue.js
  18. LeNet实现手写数字识别
  19. 亚马逊商品图片使用技巧和规范你都了解吗?
  20. imregionalmin

热门文章

  1. Java---数据库---数据库DDL
  2. socket通信技术
  3. 买了一台美版ThinkPad T460s
  4. bugku 细心的大象
  5. HTML表单中get 和post 的区别
  6. 如何批量将 Doc 格式的 Word 文档转为 Docx 格式
  7. 让Windows 时间与Internet 时间服务器同步
  8. 宽带和光纤宽带的区别
  9. IB36分斩获藤校?看艺术设计类专业
  10. Mycat批量插入性能测试