新手如何学好C语言?

新手指引 专栏收录该内容
7 篇文章 0 订阅

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

  • 10
    点赞
  • 2
    评论
  • 48
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

一、C语言自我YY<br /> 1)、C语言是许多高级计算机语言的基础,学好C语言能更好的学习其他高级语言,为以后的学习打基础;往深学C语言的话那就是学到C在Linux里的应用,Linux十分强大。<br /> 2)、C语言是一种计算机程序设计语言。具有高级语言的特点,又具有汇编语言的特点。C语言可作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。<br /> 3)、应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。<br /> 4)、C语言是面向过程语言,C语言通过windows/linux平台下编译的,是直接运行在windows/linux平台下的,而XX始终是运行在他的虚拟机之上的;所以理论上C语言能做一些相对于比较底层的工作,像XX就不能编写Windows病毒。<br /> 5)、如果要利用编程来做一些windows优化工作的话,建议还是利用C语言C语言是目前世界上流行、使用最广泛的高级程序设计语言<br /> 6、很多编译器,几乎所有操作系统Windows,Linux,Unix的大部分代码都是C,C在背后做了很多东西的,也许开发游戏用C++,安卓用XX更为合适,图形界面的用其他语言开发效率更高一些(因为他们封装了很多东西),但同样的原因导致略微接近底层的功能其他语言根本干不了!Windows的API都是按照C语言的格式给的,这也很能说明问题!嵌入式开发更是离不了C语言!纵观电脑发展几十年,C语无所不能呀!
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值