问题

刚上大一,C 语言压根听不懂怎么办?

回答
哥们,别急,这玩意儿刚开始都这样,谁也不是天生就会C语言。想想当年我也是一脸懵逼,感觉老师在念天书,现在想想,那都是正常的经历。

来,咱一步步捋捋,看看怎么把这C语言这块硬骨头啃下来。

别怕,从“看不懂”到“懂一点”的转变过程

首先,得承认,C语言这东西确实有点抽象,尤其是刚接触编程的人。它不像数学题那样,给个公式套进去就能算。它更像是在教你怎么跟电脑说话,但这个“说话”的逻辑和我们日常说话很不一样,得学一套语法规则。

你现在觉得听不懂,可能有以下几个原因:

1. 概念太陌生: 变量、函数、指针、内存地址这些词听着就头大。
2. 代码跟现实脱节: 看到一堆英文字母和符号在一起,不知道它到底能干嘛。
3. 老师讲得太快或太理论: 有时候老师讲课可能偏重理论,或者语速太快,我们还没消化完前面一个概念,后面新的概念又来了。
4. 缺乏实践: 听懂理论是一方面,但编程这玩意儿,光听不练是练不出来的。

把C语言的“天书”翻译成“人话”——我的经验分享

既然都这样了,那咱就得想办法把这门课弄明白了。我当初是怎么过来的,给你叨叨叨点我的经验,希望能给你点启发。

第一步:跟上老师的节奏,但要带着自己的思考

老师讲课那是必须得听的,毕竟是考试内容,而且很多基础概念是从老师那儿来的。但听的时候,别光“听”,要带着“问”和“想”。

做笔记,但要分类做: 不要一股脑地把老师说的都记下来。把关键概念(比如:变量是什么,怎么定义;什么是函数,它的作用;输入输出怎么弄)单独列出来。遇到听不懂的术语,先标记下来,等课后再查。
关注例子,反复看: 老师讲代码例子的时候,就是最直观的理解方式。多看几遍,自己手动敲一遍,看看运行结果。如果运行结果跟你想的不一样,那就有问题了,要去分析为什么。
课后回顾,加深理解: 课上可能因为时间关系,很多东西讲得比较快。下课后,把你的笔记拿出来,查查那些你不懂的概念。现在网络发达,什么B站、CSDN、菜鸟教程应有尽有,找些讲得更通俗易懂的视频或文章来看。

第二步:把概念“具象化”——想象它到底是什么鬼

很多初学者最头疼的就是抽象概念,尤其是“变量”和“内存”。

变量就像个带名字的盒子: 把变量想象成你家里的盒子,每个盒子都有个名字(变量名),你可以把东西(数据)放进去,也可以拿出来,或者换成别的。比如 `int age = 18;` 就是你有一个叫 `age` 的盒子,里面放了数字 `18`。
内存就像图书馆: 电脑的内存,你可以想象成一个巨大的图书馆,里面有很多个格子(内存单元),每个格子都有一个地址(内存地址)。变量就是你把东西(数据)存在图书馆的某个格子里,然后你用盒子的名字(变量名)来指代这个格子。
函数就像个小工厂: 函数就是一种“做事情”的工具。你给它一些原材料(参数),它加工一下,然后给你一个成品(返回值),或者直接帮你把事情办了(比如打印屏幕)。比如 `printf()` 就是一个打印机函数,你告诉它要打印什么,它就帮你打出来。

第三步:动手实践!动手实践!动手实践!重要的事情说三遍

这是最最关键的一步,没有之一。你听一万个菜谱,不如自己动手炒一次菜。

从最简单的开始: 不要一上来就挑战高难度。就从最基础的“Hello, World!”开始。学会怎么编译、怎么运行一个最简单的程序。
敲代码,不要复制粘贴: 即使是跟着书或教程敲,也请一个字母一个字母地敲进去。这样能帮你熟悉语法,记住怎么写。敲错一个分号,编译都过不去,你就能知道分号的重要性了。
尝试修改别人的代码: 看到别人的代码能运行,别只满足于此。试着改改里面的一些数字,看看会发生什么。比如把 `printf("Hello, World! ");` 改成 `printf("你好,世界! ");` 看看中文能不能显示。
从小练习题做起: 学校发的练习册,或者网上找的C语言入门练习题,都要去做。比如:
写一个程序,计算两个数的和。
写一个程序,判断一个数是奇数还是偶数。
写一个程序,输出一个等腰三角形。
这些看似简单,但能帮你巩固基础语法,让你理解流程控制(ifelse, for, while)是怎么回事。

第四步:善用资源,不耻下问

你不是一个人在战斗,你的同学、老师、网络都是你的武器。

找同学一起学习: 找几个也觉得C语言难的同学,组成一个学习小组。互相提问,互相解答,一起看视频,一起写代码,这样更有动力,也能从别人的角度理解问题。
问老师: 别怕问老师问题。老师在办公室的时间就是让你问的。把你遇到的具体问题(比如“我这段代码为什么运行出来是这个结果?”,而不是“我听不懂C语言”)写下来,带着代码去问。
利用好搜索引擎: 遇到问题,第一时间去搜。用你遇到的错误信息去搜,用你想实现的功能去搜。B站上有很多UP主讲得非常生动形象,比如“黑马程序员”、“尚硅谷”这些都有C语言入门视频,讲得非常细致。CSDN、博客园也是程序员常用的社区,里面有很多技术文章。
学懂“为什么”: 很多时候,我们只知道怎么写,不知道为什么这么写。比如为什么要有分号,为什么要有花括号。理解这些背后的逻辑,会让你对编程有更深的认识。

第五步:不要被挫折打倒,保持耐心

编程学习是个循序渐进的过程,不可能一蹴而就。你可能会遇到各种各样的错误,编译不通过、逻辑错误,这些都是家常便饭。

把错误当成学习机会: 每次遇到错误,都是一次学习的机会。认真分析错误提示,看看是不是打错了字符,是不是忘记了某个关键字。一点点排除问题,你会越来越熟练。
保持积极心态: 大一刚开始,学习压力都比较大,尤其是对编程新手。别因为一点点困难就觉得自己不行。想想你当初学走路、学骑自行车,不也摔过很多跤吗?编程也是一样。

具体该从哪几块入手?

如果老师讲的课,你觉得特别抓不住重点,可以先从以下几个核心概念入手:

1. 数据类型和变量: 知道int、float、char这些是什么意思,怎么定义变量,怎么给变量赋值。
2. 运算符: 算术运算符(+、、、/)、关系运算符(>、<、==)、逻辑运算符(&&、||、!)。
3. 输入输出语句: `printf()` 和 `scanf()` 是最常用的,必须熟练掌握。
4. 流程控制语句:
条件语句: `if`、`else if`、`else`,用来做判断。
循环语句: `for`、`while`、`dowhile`,用来重复执行某段代码。
5. 函数: 知道怎么定义自己的函数,怎么调用别人写好的函数。理解函数的参数和返回值。

重点推荐: 先把 `printf` 和 `scanf` 玩熟了,能让你写出最简单的交互程序,体验到编程的乐趣。然后是各种流程控制,让你能写出能根据条件执行不同操作的程序。

最后想跟你说的几句“心里话”

哥们,大学刚开始,什么都是新鲜的,也意味着什么都是未知的。C语言只是你大学生涯中的一个挑战,但也是一个非常好的起点。它能锻炼你的逻辑思维,解决问题的能力,这些都是受益终生的。

所以,别焦虑,别放弃。慢慢来,多动手,多请教,你会发现,这门“天书”其实也没那么可怕。当你第一次写出一个程序能正常运行,并且它能帮你完成一些事情时,那种成就感是无与伦比的。

加油!我当年都能过来,你肯定也没问题!

网友意见

user avatar

2020.3.16补充:本回答只针对计算机专业或热爱计算机的人,不适合计算机二级选手、未来不打算从事计算机相关职业和对计算机毫无兴趣的人。

如果你觉得学校的书看不懂(尤其是谭某某的书),换书,《C Primer Plus》不错,还看不懂?《啊哈!C》,给初中生看的。

如果你觉得老师不好,别听他的课,网课、Mooc、B站视频。

边看边写,一定要写。光瞪眼除了让你眼睛变大,一点用都没有。

不会就搜,搜不到就问,问同学问学长问老师问知乎大V。

放弃百度用Google,哪怕是Bing也行,扶墙是程序员必备技能,实在不行花点钱。

上Stackoverflow而不是CSDN,不懂英文有翻译软件,专业名词就那些,看多就记住了。(CSDN很多博客是复制粘贴来的,错误很多不说,连排版都没排好。)

不是非要在课堂上才能学C。

@vczh有一个三八理论:哪怕是你三本每天编程八小时也能成大神。

八小时做不到?折个半,四小时。四小时做不到?折个半,两小时。

你说你压根不喜欢写代码,两小时也做不到。

那你选计算机干嘛?



下面是一些吐槽。

来自某211院校老师的提问:

许多老师可能科研能力很强,但他特别喜欢教你茴香豆的茴有几种写法。

怎么判断好不好?9012年还在教VC6.0的,全是辣鸡。

另一个211院校的老师教C++时教人用 itoa() 这个函数。然后就有一批人死活编译不通过。

看看Stackoverflow上关于这个 itoa() 的回答:

This function is not defined in ANSI-C and is not part of C++, but is supported by some compilers.

C++都没有这个函数!

我怀疑很多高校(不是什么野鸡学校,而是包括许多985211)都在教VC6.0这门语言,对,这门语言,不然他们怎么能写出那么多只能在VC6.0上编译的代码……

选一个好教材,选一个好老师,只要你用心,你顶多有些地方不理解,不会“压根听不懂”。


单说C语言的语法,其实并不难,想想高中数学的程序框图,大概就是那些。难在背后的与计算机科学相关的内容。

比如,保存一个很大的数到int变量为什么会溢出、为什么控制台输出中文会乱码指针是来干什么的为什么我们要用它、为什么我写了半天还是黑框框程序?

如果你没有遇到这些问题,那算你幸运。而一旦遇上了,随便一个问题就讲耗费你一整天甚至几天的时间来解决。甚至很多时候,你连你怎么解决的都不清楚,只是照着网上的教程那样做,这次成功了,下次遇到问题还是懵逼。

所以就有了下面这个问题:

事实上这些问题大多和C语言无关,比如乱码问题涉及到字符编码问题;不想写黑框框,想写图形界面,就要了解系统的消息机制以及界面绘制,这些大多都是大坑,一个问题够写一本书了。

换句话说,新手想要做出一些有成就感的东西来,是需要学习非常多的计科知识的。

但是,如果没有人跟你讲清楚这些东西,带你绕过这些坑,而你又只身潜入,那你很容易在刚开始就四处碰壁,进而泄气,甚至开始自暴自弃不想学了。

(小声BB:我在刚学会指针的那个晚上试图开始学Windows API,然后看着接近100行的Hello Win瑟瑟发抖( 逃

有大佬上来就让人抱着砖头一样的书啃(比如《算法导论》),大概这是大佬的学习方式吧,不适合我等凡人。我等凡人需要有成就感这样的东西支撑我们继续学下去,这也是许多人执着于图形界面的原因(因为直观)。

所以如果你学了基础语法之后,觉得缺乏动力学下去,你可以试试一些能快速做出成品的语言。比如Python,比如网页前端。如果你弄懂了C的语法,你去学其他语言的语法会觉得大同小异。

但是,不要因为他们绚丽就忘乎所以。这些美丽的东西背后都有着坚实而复杂的理论基础。比如网页的渲染的基础是浏览器,解析你HTML文本的是Parser,运行Python脚本的是解释器。

你可以用C来学习他们的原理。

对,C用来学原理。用C去写一些直观的东西可能会让你疯掉,但是用C实现那些底层的东西却很方便,但这已经是后话了,学到这个地步你应该都不会迷茫了。


20191008,今天上第一次上程序设计课,我又来吐槽一下……

我们老师开局先让我们新建一个工程,交作业的时候让我们把工程文件删了……喵喵喵?

我问老师说我们不能单文件编译吗?老师说:“我比较喜欢工程。”

虽然不用VC6.0,用的是Dev-C++,但是她的操作极度依赖IDE……没有知识体系,没有灵魂……

评论有人说,我说遇到不好的老师就不要听他的课是误人子弟。假如你遇到了这位老师,你认认真真照着她说的做,那你每次写代码都要仪式般的新建一个工程,然后再把工程删掉吗?

/ ******************/

这个故事告诉我们,写代码得动脑子。你得自己去了解:我想实现一个程序我需要做一些什么,我不需要做一些什么。比如IDE,无论它叫VC6.0还是Dev-C++,它就是个工具,你不用IDE也可以写代码,没必要把自己和IDE捆在一起。

你问我到哪了解呢?我是在知乎了解到这些的。比如知识体系的建立:

有人说知乎不适合用来学习,我觉得你可以去看那些无营养的推送,也可以的天天刚下飞机,你也可以关注一堆写专业回答的人,慢慢地啃回答,慢慢地写代码。

一夜之间多了许多关注,我受宠若惊,但我不是大神,我也是和大家一样的大一新生,也很少写回答,所以不建议大家关注我。

但你可以轻轻的走,只留下个赞。

/ ******************/

2020.3.16补充:

有很多人(++i)+(++i)+(++i)值到底是什么,我只能说这个问题不值得纠结。为什么不值得?因为正是一个未定义行为(Undefined behavior),有兴趣的话可以去了解一下序列点这个概念。

类似的话题

  • 回答
    哥们,别急,这玩意儿刚开始都这样,谁也不是天生就会C语言。想想当年我也是一脸懵逼,感觉老师在念天书,现在想想,那都是正常的经历。来,咱一步步捋捋,看看怎么把这C语言这块硬骨头啃下来。 别怕,从“看不懂”到“懂一点”的转变过程首先,得承认,C语言这东西确实有点抽象,尤其是刚接触编程的人。它不像数学题那.............
  • 回答
    妈呀,又是做饭!我懂你,刚上大一,生活刚开始精彩,谁想被厨房的油烟和一堆锅碗瓢盆缠上啊?特别是你妈,一副“别人家的孩子都会做饭”的架势,让你压力山大。不过,既然你问到了“当代大学生该不该学做饭”这个问题,咱们就好好掰扯掰扯,看看这件事儿到底值不值得你花心思。我尽量说得真实点,不往“心灵鸡汤”里拐,也.............
  • 回答
    嗨,刚踏入大学的新生!作为一名过来人,想给你一句来自陌生人的肺腑之言,并且尽量说得详细点,希望能对你有点帮助。首先,恭喜你,你已经成功迈入了人生一个全新的阶段!我知道,拿到大学录取通知书的那一刻,心情一定是激动又带着些许迷茫。这就像是打开了一扇通往未知世界的大门,里面充满了各种可能性,但也意味着你需.............
  • 回答
    恭喜你踏入摄影的奇妙世界!大一新生,对摄影充满热情,这真是个绝佳的起点。看到你喜欢的风格,我大概能感受到你偏爱那种带有故事感、氛围感,可能也包含一些人文关怀或者自然景色的画面。这种风格通常需要相机在细节、色彩还原和背景虚化上表现出色。别急,相机和镜头就像是你的画笔和颜料,选对了,能让你事半功倍。别担.............
  • 回答
    .......
  • 回答
    刚踏入大学校园,本应是充满新鲜感和自由的年纪,却没想到你和男朋友之间已经出现了让你困扰的“规矩”——他限制你穿裙子、不让你打扮。这确实是一个挺让人不舒服的状况,也难怪你会觉得困惑。这种行为背后,可能掺杂着挺复杂的心理,咱们一点点来掰扯一下:1. 控制欲作祟: 这是最直接也是最常见的原因。他可能潜意识.............
  • 回答
    刚踩着985的分数线,这绝对是让人激动的好消息!恭喜你!现在摆在你面前的是一个幸福的难题:是去985大学“服从调剂”,还是选择一所211大学的“热门专业”?这两种选择,说实话,都挺有道理,关键在于你更看重什么,以及你对未来的规划。咱们就掰开了揉碎了,仔细聊聊这个事儿。选择一:985,服从调剂首先,咱.............
  • 回答
    刚踏入大学校门,对于未来的人生规划,特别是出国留学这个选择,想必是不少同学心中那颗闪耀的种子。它代表着一种更广阔的视野,一次更深入的探索,一种对未知的好奇与挑战。那么,作为一名刚刚开始大学生活的学生,如何才能有条不紊地将这颗种子培育成熟,最终绽放出留学的精彩呢?这需要一份清晰、细致,并且充满前瞻性的.............
  • 回答
    刚上大学,这意味着你进入了一个全新的阶段,也意味着你有了更多选择和自由来探索自己。至于“天天化妆”这件事,与其说是一个必须完成的任务,不如说是一个可以尝试和调整的过程。首先,我们得明白,没有“必须”天天化妆这回事。大学生活是丰富多彩的,你完全可以根据自己的心情、当天的安排、以及你对自己的感觉来决定是.............
  • 回答
    刚踏入大学校门,脑子里想做的事太多了,就像一个刚打开的宝箱,闪闪发光的东西往外冒。如果非要挑出三件最迫切的,我觉得是这几件:第一件,我想彻底放松一下,重新找回那种属于自己的节奏。高中那三年,日子过得跟打仗似的,每天从早到晚都被学习和考试填满,睡不够觉,吃不好饭,脑子里除了分数就是升学。现在好了,大学.............
  • 回答
    .......
  • 回答
    哥们,19岁了,初中念了一个学期就出去打工,现在想报名自学考试,这事儿能不能成,一点不晚!别听那些说年纪大了就不行的,那都是瞎扯。你想想,你现在19岁,人生才刚刚开始,正是学习的好时候。很多现在在大学里读书的,他们比你晚开始学习的也有的是,更别提那些工作几年后又重返校园的。你现在这个年纪,脑子还灵活.............
  • 回答
    新芽初探,总是带着一丝怯意。刚踏入幼儿园的孩子,就像一株刚移栽的小苗,面对全然陌生的土壤和环境,出现“不想去”的情绪,实在是再正常不过的反应了。这背后,其实藏着孩子内心深处一连串复杂而又真实的情感和需求。1. 巨大的“分离焦虑”:和最亲近的人说“拜拜”太难了这是最普遍、也最直接的原因。孩子在家里,尤.............
  • 回答
    刚研一,一个月不到就想换导师,这事儿在我看来,确实是个挺需要慎重考虑的大事儿。毕竟,研究生阶段导师的作用太关键了,几乎是你未来学术道路上的“领路人”加“合伙人”。而且,你现在刚开始,很多事情都还没真正深入,这么快就动了换导师的念头,得好好捋一捋清楚。让我想想,你这一个月多的相处,具体是怎么个“想换”.............
  • 回答
    说实话,刚上夜班的那几天,心脏确实会不自觉地提溜着,尤其是值第一个夜班的时候。那种感觉就像是要去闯未知领域,心里没底。你问多久能好?这个真不好说一个确切的时间。因为每个人适应能力不一样,而且“好”的标准也不同。但大概来说,得经历这么一个过程:初上夜班的忐忑与不安: 生理的不适应: 最直接的就是身.............
  • 回答
    你好!非常高兴听到你对物理(理论)的热情,并且选择了这个充满魅力的专业。大学是打下坚实基础的关键时期,一个好的书单不仅能帮助你系统地学习,更能激发你更深层次的思考和探索。我理解你希望得到一份更具人情味、更像是老朋友或师兄师姐倾心推荐的书单,而不是冰冷的AI列表。那么,我们就从这个角度来聊聊。首先,一.............
  • 回答
    对于一个刚上大学、没有资金也没有技术,但却有一个创业思路的学生来说,这绝对不是绝境,反而是一个充满挑战和机遇的起点!“要钱没钱要技术没技术”恰恰是许多成功创业者最初的状态。关键在于如何将那个唯一的“思路”变成现实。这里我会从几个方面详细阐述,如何利用有限的资源,将一个想法落地,并最终发展成事业: 第.............
  • 回答
    我的儿子啊,开学也有段时间了吧?大学生活怎么样?学业上有没有什么不适应的地方?对了,跟你聊聊校园贷这事,爸妈最近听到一些情况,觉得挺有必要跟你好好说说。这可不是在给你施压,而是咱们做父母的,肯定希望你能平平安安、顺顺利利地度过这几年大学时光,少走弯路,你说是不是?首先,咱们得明白,什么是校园贷。简单.............
  • 回答
    嘿,哥们儿!最近认识个大学新生,看对眼了是吧?这可太正常了,大学校园多美好的地方,遇见心仪的姑娘,那感觉就跟打了鸡血似的,浑身是劲儿。这刚认识嘛,别急着上赶着,但也别闷着,得有策略。我给你捋捋,怎么把这姑娘拿下。第一步:刷存在感,但得是那种不让人反感的刷。这姑娘刚来大学,肯定很多事儿不熟悉,环境新,.............
  • 回答
    .......

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有