美文网首页
零基础如何快速记忆运用C语言编程中的关键字,运算符和语法结构?

零基础如何快速记忆运用C语言编程中的关键字,运算符和语法结构?

作者: C语言学习 | 来源:发表于2018-04-29 22:51 被阅读129次

    学习C语言的时候,我想要你首先记住所有的基本符号和语法,然后将它们用到一系列的习题中。这种方法和你学习人类语言的过程很相似:记忆单词和语法,然后将记住的东西用到对话中。只要一开始下功夫简单记住一些东西,你就有了足够的基础知识,以后读写C代码就更容易了。

    警告

    有的人极其反对背诵记忆。一般他们会说这会抹杀你的想象力,让你变成呆子。其实不会,我就是一个活的证据。我会画油画,会弹吉他,会制作吉他,会唱歌,会写代码,会写书,而且我背过很多东西。因此,这种说法不但毫无根据,而且会破坏学习效率。别把他们的话当回事儿。

    1.1 如何记忆

    最好的记忆方法过程其实很简单。

    1.创建一系列的速记卡,将符号写在一面,将描述写在另一面。你还可以使用一个叫Anki的程序在计算机上完成这件事。我喜欢自己制作速记卡,因为制作的过程也有助于记忆。

    2.将速记卡打乱,然后一张一张开始浏览,先只看其中的一面,努力想想另一面的内容,别着急看答案。

    3.如果无法想起另一面的内容,那就看看答案,然后复述答案,再把卡片放到单独的一摞里边。

    4.看完所有的卡片以后,你手头就有两摞卡片了:一摞是你能快速记起的,另一摞是你没有记住的。拿起没记住的那一摞,下功夫努力去记这些卡片。

    5.一个阶段结束以后(通常是15~30分钟),你手头还是会有一摞没记住的卡片。将这些卡片随身携带,只要有空,就背一会儿里边的内容。

    记忆的技巧有很多,不过我发现,这是让你能做到即时想起你需要能立即使用的东西的最好方法。C语言的符号、关键字、语法是你需要即时想起的东西,所以这个方法最适用。

    另外还要记住,你需要做到卡片的双面记忆。你应该能做到通过描述知道对应的符号,也要能从符号知道它的描述。

    最后,你不需要专门停下来去背这些运算符。最好的方法是将其和书中的习题结合起来,以便对记忆的内容进行应用。关于这一点参见下一个习题。

    1.2 运算符列表

    首先要列出的是算术运算符,与几乎每一种编程语言里的算术运算符都很像。写卡片的时候,描述中要写上它是算术运算符,并说明它的具体功能。

    小编推荐一个学C语言/C++的学习裙【 六二七,零一二,四六四 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

    关系运算符用于测试等值性,它们在各种编程语言中也都很常见。

    逻辑运算符用于逻辑测试,它们的功能你应该已经知道了。唯一特殊的是逻辑三元运算符(logical ternary),你将会在本文的后面学到。

    按位运算符做的事在现代代码中不常见到。它们会用各种方式改变构成字节和其他数据结构的位。我不会在本文中讲这些,不过在一些特定类型底层系统中,它们用起来会非常顺手。

    赋值运算符的作用是将表达式赋给变量,不过C语言中很多运算符都可以和赋值合并使用。因而,当我说“与等”(and-equal),我说的是按位运算符,而不是逻辑运算符。

    我把下面的操作叫数据运算符,不过它们其实处理的是指针、成员访问,以及C语言的各种数据结构的元素。

    最后还有一些杂项符号,它们要么用途多变(如,),要么由于各种原因没法归类,所以一并列在下面。

    一边学习速记卡,一边继续阅读本文。如果你每次学习之前花15~30分钟攻读速记卡,每天睡前也花15~30分钟,那么应该用不了几个星期你就能都记住了。

    记忆C语言语法

    学完运算符以后,就该记忆你将用到的关键字和基本语法结构了。相信我,你花在记忆上的少量时间,会在后面阅读本文时给你巨大的回报。

    正如我在习题5中提到的,你不需要停止阅读本文专门去记忆,你可以两者同时进行,而且也应该这样做。在每天编码之前,用你的速记卡作为热身。将卡片拿出来,背上15~30分钟,然后坐下来做本文的习题。在你阅读本文的时候,试着将你输入的代码作为一种记忆练习。有一个小技巧,就是在你写代码的过程中,将你看到后没法直接想起的运算符和关键字的速记卡收集在一起。一天的学习结束以后,再花15~30分钟学习记忆这些卡片上的内容。

    坚持这样做,你就可以更快、更牢固地学会C语言。这比你只通过录入代码,四处碰壁,最后得到一堆二手记忆的过程要高效得多。

    1.3 关键字

    编程语言中的关键字(keyword)是扩展其符号集的一些单词,它们让编程语言更加易读。有一些语言(如APL)并没有真正的关键字,还有一些语言(如Forth和LISP)除了关键字几乎什么都没有。介于中间的就是像C、Python、Ruby以及很多语言一样的语言,这些语言的基本内容是由关键字和符号混合构成的。

    警告

    编程语言中处理符号和关键字的过程叫作词法分析(lexical analysis)。这些符号和关键字中的任一单词叫作词素(lexeme)。

    关键字描述

    1.4 语法结构

    我建议你记住这些关键字,也记住语法结构。语法结构(syntax structure)是一系列符号的模式,用来组成C程序的代码格式,如if语句或者while循环这样的固定结构。你应该会发现下面大部分内容都很熟悉,因为你已经学过了一门语言。你唯一要做是学习其在C语言中的做法。

    下面是阅读这些内容的方法。

    全大写意味着该位置需要填入内容或空位。

    看到方括号中有全大写就意味着这部分内容是可选的。

    测试你对语法结构的记忆的最好方法是打开文本编辑器,在其中当你看到了一个switch语句,那就说出它的功能,然后试着写出代码格式。

    if语句是基本逻辑分支控制工具:

    switch语句和if语句类似,但它对简单的整型常量才有效:

    while循环是最基本的循环:

    你还可以使用continue来实现循环。我们暂时就叫它while-continue循环:

    你还可以使用break退出循环。我们称其为while-break循环:

    do-while循环是while循环的逆转,它会先运行代码,然后再测试条件来看是不是需要再次运行代码:

    它里边也可以有continue和break,用来控制其运行方式。小编推荐一个学C语言/C++的学习裙【 六二七,零一二,四六四 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

    for循环是一个可控的计数循环,它使用计数器来实现(期望的)固定次数的迭代:

    enum会创建一组整型常量:

    goto会跳到一个标签的位置,只在很少的情况下有用,如错误检测和退出的时候:

    函数是这样定义的:

    这个也许不好记,那就来看看下面这个例子,然后你就知道TYPE、NAME、ARG、VALUE分别是什么了:

    typedef用来定义新类型:

    更具体的例子如下:

    别被空格欺骗了,在这个例子中,DEFINITION对应的是unsigned char,IDENTIFIER对应的是byte。

    struct是由多种数据类型打包在一起形成的一个概念,它在C语言中会大量使用:

    [VARIABLE_NAME]是可选项,除了几个小场景之外,我一般选择不使用它。它通常会像下面这样和typedef组合使用:

    最后,union会创建类似struct的东西,不过其中的元素会在内存中重叠。这个东西挺怪,不好懂,所以暂时就这样记住就好了:

    相关文章

      网友评论

          本文标题:零基础如何快速记忆运用C语言编程中的关键字,运算符和语法结构?

          本文链接:https://www.haomeiwen.com/subject/utialftx.html