如何学习C语言

 我来答
薄梦寒撒贝
2019-11-30 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:28%
帮助的人:710万
展开全部
1、程语语言其实是一个很初级的工具,但是又必须熟练的掌握它,学懂一门编程语言就好像学会了写字,但是会写字的人不见得会写文章,而会写文章又不见的写得好。可是如果不会写字,那就一定写不出文章来。
2、在学习C语言之前,应该学好计算机基础。里面的很多概念对于C程序员都是非常重要的。如果在着手学习C之前,或者已经开始学习C,但是碰到了很多问题,应该再把计算机基础的书拿来好好看看。如果有足够的耐心,十足的毅力,应该再学习C语言之前学学汇编,这会对许多比较细腻的概念有清醒的认识。那么可以在看完一遍C语言的教材后再看,但是一定要看一遍,一定会受益匪浅。不管看什么书,先认真地看懂,不要贪速度,应该力求深入的理解。如果能够比较熟练的解决一本教材上的所有习题,那么就应该转入对算法的学习,尽管此时的C语言还称不上精通,有许多细节问题还不了解,许多问题还没有碰到,但是这些问题会在后面的工作和学习中得到解决的。
3、不需要多少资料,掌握一本《The
C
Programming
Language》就足够了。继续学习就更加容易。建议不要找捷径,通过考试除外,真正的水平提高是建立在编程实践积累基础上的,必须一个一个程序的完成才能提高。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海同职坐标在线
2021-12-24 · 百度认证:上海海同优才教育培训有限责任公司
海同职坐标在线
向TA提问
展开全部
C语言是非常重要的语言,原因在于C语言是连接了硬件和软件的桥梁。很多人会觉得C语言入门难,不能像其他编程语言一样快速获得成就感。但仍然有很多技术大咖建议大家有必要学一下C语言。那么0基础如何入门C语言,一起来看看学霸们的C语言学法。
▪ 学霸一:
C语言是最基础的编程语言了,其实,对于理工科专业的人来说,C语言并不难,C语言都学不好,怎么学习C++、Java、汇编语言等,这些语言比C语言要难得多。也许是因为刚接触C语言,刚刚接触一门全新的课程,所以感觉比较难。

记得本人大学刚开始接触C语言的时候,也是一头雾水,根本不懂C语言是干嘛用的,听课时也是晕乎乎的。感觉很虚的东西,计算机二级考试也是勉强合格。后来,本人报名了一个电子设计竞赛,经常在实验室里编程做项目,才慢慢体会到C语言的真正用处。后来对C语言产生了兴趣,课余时间经常到实验室设计项目。到大三的时候,报名参加了全国电子设计竞赛,估计是运气好吧,拿了一等奖。

▪ 学霸二:
C语言难学,个人认为是被国人误传或误教所致。一直以来,高校理工科都开设了C语言,学生稀里糊涂开始学习。在不清楚学习目的、所需前提知识的情况下,仅学习些基础语法知识,导致大部分学生学习效果不理想,从而造就了C语言难学的传说。

C语言是程序员与计算机进行交流的一种语言,目的是达到对计算机进行控制,实现程序员预期的效果或功能。因此,为了能更加有效地进行交流或控制,除了学习些基础的语法知识外,还要求学习者对交流对象要有较清楚的了解或熟悉(即所需前提知识),和掌握一些必要的交流技巧(思维方式或套路类的东西)。

▪ 学霸三:
在上大学之前,我对这个专业仅仅的认知是学电脑的,对编程来说更是一无所知,而我选择计算机专业完全是因为我从小就喜欢玩电脑,仅此而已。记得小时候还不会拼音和英文的时候,我玩的第一个游戏就是侠盗飞车,靠着记忆按着start和quit game。

这就是我对电脑的启蒙,但是我小时候就对电子产品非常感兴趣,而我的父母并没有向其他家长一样阻止我接触电脑,相反,他们认为让我从网络了解世界是一件正确的事情,只要自己掌握好尺度。所以从小影碟机,电视,电脑,手机没有人教我我就自己琢磨,父母有些问题我都能解决。渐渐的,那时候对大学的专业没有概念,就是想,如果上大学我还想上计算机专业,而我母亲每次在我玩游戏的时候就说:玩游戏不是本事,能做游戏让别人玩才是本事。能够来到自己心目中的大学和喜欢的专业也是一件非常开心的事。

本学期前的假期,我提前学习了c语言,上课之前我很忐忑,对于我这种仅仅停留在玩电脑的小白来说能否学懂编程是个很难的事情。但是后来我发现,编程就是和计算机对话,就像学习外语一样,让人与计算机有联系。让计算机明白人的意图。这其中包还含着数学的知识。我认为c语言就是所有编程语言的基础,举一反三,一门学精了其他的也就弄懂了,而c语言的精髓就是指针,这是其他编程语言没有的。

▪ 学霸四:
C语言的语法是现在语言中比较简单的,要说语法是就只有c++最为复杂了。大家说的c难是因为,用c开的的东西一般与系统api和算法有关。算法这个,没个数学功底真的想不到,其它的语言没有比较高级的算法,其它语言的算法也都是c语言从语言的底层(不是系统的底层)实现的,再封装成语言的算法库。

系统api,这个东西不像语言层级的api那么简单,它是系统直接关系的相当复杂,要了解系统、信号、返回值这东西表现出来的现象多,与你要做一个东西有不同的处理。还有一个点c实现的东西要考虑到性能,这个不简单,不是简单的io性能,要考虑内存拷贝的消耗、堆栈开关的消耗、cpu调度的消耗。

▪ 学霸五:
从没觉得c语言难学,相比后来的大量的面相对象的语言,c语言其实非常好学,学习门槛并不高。

如果说到难,一个是数据结构,这个东西比较枯燥,而且严格说应该是属于数学问题而不是编程问题,第二是函数偏少,经常需要自己动手,不像主流oop们全都给你封装好了直接用,不过,从这点讲,也正是c语言的一大优势,让你知其然亦能知其所以然。

c语言属于中级语言,意味着它具备oop们没有或缺乏的的对计算机底层资源的操控能力,因此操作系统,驱动程序等基本都只能用c语言。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
謇士恩淦丁
2019-05-11 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:27%
帮助的人:1170万
展开全部
1、程语语言其实是一个很初级的工具,但是又必须熟练的掌握它,学懂一门编程语言就好像学会了写字,但是会写字的人不见得会写文章,而会写文章又不见的写得好。可是如果不会写字,那就一定写不出文章来。
2、在学习C语言之前,应该学好计算机基础。里面的很多概念对于C程序员都是非常重要的。如果在着手学习C之前,或者已经开始学习C,但是碰到了很多问题,应该再把计算机基础的书拿来好好看看。如果有足够的耐心,十足的毅力,应该再学习C语言之前学学汇编,这会对许多比较细腻的概念有清醒的认识。那么可以在看完一遍C语言的教材后再看,但是一定要看一遍,一定会受益匪浅。不管看什么书,先认真地看懂,不要贪速度,应该力求深入的理解。如果能够比较熟练的解决一本教材上的所有习题,那么就应该转入对算法的学习,尽管此时的C语言还称不上精通,有许多细节问题还不了解,许多问题还没有碰到,但是这些问题会在后面的工作和学习中得到解决的。
3、不需要多少资料,掌握一本《The
C
Programming
Language》就足够了。继续学习就更加容易。建议不要找捷径,通过考试除外,真正的水平提高是建立在编程实践积累基础上的,必须一个一个程序的完成才能提高。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
营丰熙瑞童
2020-01-11 · TA获得超过3万个赞
知道小有建树答主
回答量:1.1万
采纳率:31%
帮助的人:732万
展开全部
第一:一些概念。
C语言是一门程序设计语言,有一些标准,比较重要的是ANSI
C(好像是C89)和C99。
数据结构包括逻辑结构和物理结构。逻辑结构是数据元素集合和定义在集合上的关系。物理结构是逻辑结构在计算机中的实现。
LCC、VC、TC、GCC都是C语言编译器,一般包括集成开发环境,编译器和链接器及辅助工具
我们书写的是C源程序,源程序通过编译器编译为中间文件,中间文件经链接器链接生成可执行文件。不同操作系统可执行文件不同。中间文件也有几个标准,微软使用的和Linux下通用的有差异。
第二:学习什么。
个人认为程序设计学习的重点放在数据结构的学习上,但是这种学习要有一个平台,比如C语言。
学习C语言首先要掌握基本语法,常量、变量、类型、及顺序结构、分支结构和循环结构的意义及用法。进一步学习构造类型如指针、结构、函数的意义和用法。
C语言提供一些标准函数以减轻程序设计工作量,这些函数我们自己也可以实现。即使不依靠函数库,只有编译器,理论上就足够了。事实上,提供的标准函数效率都很高,使用很频繁,没有自己实现的必要,所以掌握常用函数是非常必要的,但是要注意函数的适用范围。
继续学习因人而异,应该可以独立选择了。
第三:如何学习。
强调多实践,C语言的学习要经常上机,多写程序才能逐步提高。
推荐书籍:C
Programming
Languge。有中译本
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
赫微兰罗巳
2020-05-14 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:26%
帮助的人:856万
展开全部
借此希望对初学者有点帮助:
一、分号,大括号
分号。分号是表达式结束的标志,一般表达式后面都要有。
写“;”的时候一定要注意:是否要结束前面的语句
。注意:if,switch,for,while语句,数据类型定义,函数定义。
if(a>b)
/*if语句,没有分号*/
{...}
while(i+=10,i!=100);
/*while语句循环体为空,依靠逗号语句实现循环*/
struct
a
/*结构体数据定义,没有分号*/
{...}b;
/*结构体变量,要有分号*/
int
sum(...)
/*函数定义,没有分号*/
{....}
大括号。大括号是一个语句段的标志。
写大括号时最好一次写一对,然后把光标移到大括号里写
。避免遗漏。
二、运算符号
“=”与“==”
“=”用于赋值,注意“=”左边必须是变量,右边可以是常量也可以是变量。“==”用于判断两个量的大小,左右两边可以是常量也可以是变量(
尽量把常量写在左边,这样“==”误写成“=”时编译器就会报错
)。
运算表达式有它本身的值
。“=”语句值为“=”右边的量的大小;“==”语句值为判断结果,无外乎两种,0(表示“==”两边不等)1(“==”两边相等)。
(i=1)==(3==4);
/*i值为1,整个表达式值为0*/
“,”
逗号语句是从左到右计算,整个逗号语句的值为最后一个语句的值
i=(j=2,j+8,j++);
/*先计算j=2,值为2,j+8不是运算表达式,跳过,计算j++得到整个括号内的值3*/
“/”
“/”两边都是整型变量的时候结果也是整型,而且结果遵循向0靠拢的原则

运算符的优先级及结合方向
不多说了,表格一定要背牢。
三、变量
命名
不要吝惜,能说明白性质尽量在变量的名字上说明。
避免老是使用一个字母,或者难以理解的变量名
。对于较长的变量命名可以使用宏定义、类型定义。
#deine
UP
0x4800
/*键码的宏定义*/
typedef
struct
{....}MEM;
/*结构体变量的类型定义*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式