C语言学习随笔(3)—— 学习内容简述

    在对学习的方向以及目标有了一定了解后,开始对C语言的内容进行简单的了解,方便后续学习中的各项工作的展开。同时,这也是对今后学习进度的一个类似索引的东西。东西比较多,这里就不一一列举了,直接开始说明。

    1、C语言入门方面

    入门方面主要是一些基本知识,包括C语言程序的基本构成、C语言的历史、C语言程序的生命周期等等,主要是为了能够对 C 这门编程语言以及用它编写出来的程序有一个初步的认识。同时在这个阶段里还要练习一些其他的基本功,比如流程图的绘制和伪代码的编写。

    2、数据类型方面

    通常情况下,因为受到内存等程序使用环境的影响,在每一个编程语言中都会对数据占空间的大小进行一些定义和限制,那么由此就出现了各种数据类型。

    首先是基本数据类型,基本的数据类型包括常见的整型 int, 字符型 char,浮点型 float,双精度型 double等等。

    然后是常量,那么常量的特性呢是在任何时候它都是同一个数值,不会变,这也就导致了一个很容易混淆的情况。如果有这么一个语句 “ const  int  i = 10 ;”那么我们经常会说这个 i 是可以看做是常量的,然而在我们这么说的时候一定要清楚,要明白这个 i 是一个变量,只不过在关键字 const 的修饰下成为了一个只读变量,然后具备了常量的一个特性而已。这个误区一定要注意。

    接着是作用域的问题,作为一个编程人员,必须能够了解代码中每一个数据它所能够影响的范围是多大。而这个范围在我们最直观的感受下,也就是我们在看代码的时候是以代码的区域划分来的,比如说一个变量  Data  的作用范围是从当前代码文件的开头到当前文件的结尾,那么这就是一个全局变量,又或者一个变量  Time  的作用范围是一个函数的开头到函数的结尾,那么它就属于局部变量了。所以,作用域的问题可以看做是从空间的角度来看一个变量,那么从时间的角度看的话就是我们在第一个阶段提到的生命周期,数据的这两个属性之间是相辅相成的,那么在学习过程中对这两个角度参照着来学习的话对于代码和自己的编码逻辑会有很大的帮助。

    链接属性是个和作用域相关的一个属性,但是又和上述的作用域不是一个东西。

    另一个存储属性和这个类似,存储方式的话主要是从变量的生命周期来看的,存储的情况对应的是上面提到的“全局变量”“局部变量”。

   其它方面在后面的学习中会进行了解。

    3、语句和表达式、操作符和表达式

    表达式的作用是通过一些运算符(即操作符)按照编程者的逻辑将变量、常量或者其它数据结合起来的一个东西。而语句方面,则是可以看做是对这些表达式的使用,需要注意的是每一个语句都有它的结束符号,最为常用的结束符号就是分号了,和咱们汉语中的句号是一个道理。操作符这边呢是因为有一些比较特殊的操作符,需要学习和了解,比如问号,对应的问号表达式,逗号,对应的逗号表达式之类的。

    4、指针

    在对前几个基础学习了之后就会出现一个麻烦事儿了,关于指针这个东西很多初学者都从其他人那里听过它的难理解程度,基本上所有初学的人都对这个东西有一些害怕。其实这个东西本身并没有我们想象中的那么难,只是为难情绪产生之后,对于这个东西的学习也就无法全身心地投入了,总会分出一部分精力去思考别的东西,或者专门分出一部分精力去害怕。所以,首先要摆脱对这个东西的畏惧心理。

    指针这个东西在C语言的编程中可以用来表示各种数据结构,可以很方便地通过内存地址来直接操作数据,使C语言的编程过程和逻辑极为地灵活。

    有这么一种说法,说如果没有学过C语言,那么你对其它的编程语言学得都不够深刻,没有从C语言的角度去考虑其它语言的话那么很多东西的具体细节你真的就没有理解到。当然了,对于很多语言既然已经自成一体了,那么说明它本身是足够使用的,对于编程的一些具体实现过程中的情况忽略掉对于程序也是没有影响的。但是如果想把别的语言学得更为深刻,C语言的学习是必须的。

    例如C++学得很好,但是对指针的使用就很少了,在C++中对于一些指针已经做了修饰了,一些异常情况可能直接屏蔽掉了。而JAVA方面的话,对于指针这方面就更不用说了,因为它没有指针这个概念。那么这样的话编写程序方面是没有问题的,但是对于在内存中的具体实现过程就不知道是什么情况了,也就不要说去控制了。

    C语言与其它语言相比,它的精华便是指针这方面,指针可以看做是C语言的灵魂,那么如果在C语言的学习中没有搞懂这个指针,那么完全可以说你没有把C语言搞懂。所以这个方面是此次学习的重中之重。

    5、函数

    函数可以看做是一个用来装各种用逻辑串起来的语句的容器,而这个容器呢又能根据里面的逻辑来产生一些计算的结果。是程序的主要组成部分。

    函数方面主要要学习的是有些什么函数,每一个函数是怎么声明、实现的,这个函数是怎么被调用,怎么被释放的,等等这些关于函数的使用和实现过程的内容。然后有一个需要着重注意的点——递归可变参数列表,这个的学习在于实践,后面在学习的过程中会以理论结合实践的方式来进行。

    6、数组

    数组的维度一般情况是一维数组,二维数组,这些基本都有了一定的理解,觉得并不是很难,那么如果是n维数组呢?怎么使用就又是一个问题了。比如,如何获取长度,如何定义,定义方式有几种,赋值又该怎么进行等等,这个具体的学习可以结合一些程序的编写练习。

    7、结构体和联合

    这两个是较为简单的,结构体可以与数组对比着学习。

    8、动态内存的分配和高级指针应用

    这两个内容是C语言在所有编程语言中能够排在前列的一个依仗。所以在此次学习中也需要对此进行一些着重的掌握。

    这两个能力有什么优势呢?首先是动态内存的分配这方面,这个是C语言能够处理大量的业务的一个工具,配合这个能力程序在使用内存的过程中能够更为有效地、更优化地利用内存空间。高级指针的使用方面更是使得C语言的程序编程过程中更为灵活多变,限制更少了。

    9、预处理器

    预处理器这个方面的学习主要是为了之后的代码编辑中进行相应的处理后,就可以避免每次移植到其它设备上的时候能够减少或者直接省去代码修改、编辑的麻烦。所以也是一个可以进行多多学习的模块。

    10、输入输出

    这个是常规的操作,所以基本在使用过程中会一点点地学会的。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值