IT之路-C语言入门-ZCSDN.2017.7.12

来源:互联网 发布:阿里云客服报名入口 编辑:程序博客网 时间:2024/05/29 23:46

老生常谈,先说状态,再说学习。

状态:昨晚回去看了集电视-鬼吹灯之牧???,看完就直接睡了,非常的困,早上5:49醒了,搞不懂,怎么这么早就醒了,身体状况只能说亚健康。

学习:今天刚开始是了解了一下头文件.h,函数printf和scanf。to be honest,我不知道什么是头文件,就单说是包含全局变量定义,外部变量的定义,宏的定义,函数声明都是什么鬼?顶多达到见名知义的猜测效果。printf是输出函数,输出函数的作用是将“内容字符串”输出到stdout缓冲区,有其他函数或机制执行,将输出内容从缓冲区读取并显示在屏幕或其他显示设备上。Scanf是输入函数,没有细讲运作过程(或是我没听到),我猜应该是将数据存放到缓冲区的作用,等待其他函数的调用。

然后就开始C语言入门了。

首先:    软件=程序+文件   软件实现功能,文件用作解释说明

              程序=函数集合     由多个函数结合组成,但一个程序有且只能由一个主函数

              函数是什么?函数是一种过程,也称为子程序,他执行一个指定的运算或操作(没有找到官方说法)

              函数=数据结构+算法

              算法:算法就是实现功能的一种方法

                     在计算机编程语言中,算法有五个特性

                            有穷性:每条语句,必须在有限时间内,可以执行完。

                            确定性:每条语句执行后的结果唯一。

                            输入 : 需要有初始信息,可以有多个输入或没有输入

?                         输出 : 执行的结果是为人所需的,必须要有输出。

                            健壮性(可行性):可行,每个步骤的结果,和预期的结果相同。

天哪,我觉得我没有丝毫的学习兴趣了!

咱是学嵌入式的,旁边还有一些是学C++的,嵌入式要学Linux、C、C++和硬件;C++是把硬件换成Windows。所以我们现在都在学习C语言。学习,兴趣,如分开了,那学习就变成了折磨。现在,我已经有了一些折磨的感觉了,“穷则变,变则通,通则达”,我需要改变!如果在一味地跟着老师的节奏走,被动地去获取东西,没有主观能动性,到头直接导致的结果就是他讲完了,你忘光了。学习知识,就是要加上自己的思考总结。以后的学习方式就是先做知识点标记,再听,做记号,最后总结。不能再跟着老师一步步来了,完全没有积极性。

刚刚去吃了碗煎饺,回来的路上看到了一个美女。我曾看过一本书,叫《十大帝王藏书-声容》,作者李渔,就看了前几章。上面说的,关于美女的评判标准,说的能接受,主要是姿色+媚态,具体媚态的相关解释不清楚,我的的理解可以说就是媚态,一种散发出来的“气场”给你带来的直观的吸引力。为什么有的美女看起来没有任何的吸引力反而可能会讨厌,而有的不是很漂亮的女孩却能勾动你的心?每个人的感受比例不一样,李渔所说的媚态跟我说的也不全一样。反正,我是看到美女了,首先她美,然后她应该很善良,穿着简约却透着高贵,我喜欢。

好烦,感觉过去了,就没兴趣了,这就是我的问题所在。我发现当我去想想与自己性格吻合的人物就会透露出属于自己本性的霸气,或称之为本性,就是每个人自己的特性,与所有人的本性是区分的。

C语言的历史由来:

老师的官方说法:

KT(教授)->Unix汇编语言->与机器硬件一一对应,移植性(兼容)很差(换不同的。块板子,不能用)

KT ->BCPL ->B语言(江湖人称)

DR 和 KT ->Unix 用B语言写 ->整合新的数据结构和语法 ->C语言

DR 和 KT ->Unix 用C语言写

我现在用一段话再讲一遍:

Long long ago,有个KT教授,他用汇编语言开发了Unix操作系统,但是汇编语言是与机器硬件一一对应的,换一个不同的硬件系统就基本上不能用,官方说法是移植性(兼容性)很差。后来,KT又发明了BCPL编程语言(为什么开发,我忘了),然后他和DR(一个人)用BCPL语言重写了Unix系统,并且为B语言整合了新的数据结构和语法,诞生了C语言,然后后,又用C语言重写了Unix系统。所以说C语言就诞生了。

由C语言而衍生出的其他的编程语言有(按主流排名):易语言(国产,其实不是特别主流)、C++、Java、C#、PHP、Objective-C、Swift、VB。当初我去找工作的时候,有个老师跟我推荐Java,说实话,我看到Java这个词我就不喜欢,完全个人的,因为我接触的第一个语言就是C,所以就没兴趣了,如今再来一看,Java是儿子,看来我的预见性有点瞄头。

老师说学习C语言主要就是学习三大部分

        一:运算符 34种

              +     -      *     /      %    ++   --     >     <     =     ==   >=   <=   !      !=    <<   >>   { }   []    ( )    ^     ~     &       &&         ||      |      \      .      ,      ;      ?      “      ‘      :     

        二:关键字 32个

              auto:声明自动变量            break:跳出当前循环          case:开关语句分支

              char:声明字符型变量或返回值类型                             const:声明只读变量

              continue:结束当前循环,开始下一轮循环     

default:开关语句中的“其他”分支                             do:循环语句的循环体

double:声明双精度浮点型变量或函数返回值类型

else:条件语句否定分支(与if连用)                             enum:声明枚举类型

exter n:声明变量或函数是在其他文件或本文件的其他位置定义

float:生命浮点型变量或函数返回值类型                      for:一种循环语句

goto:无条件跳转语句                                                  if:条件语句

int:声明整型变量或函数                                            

long:声明长整型变量或函数返回值类型

register:声明寄存器变量                                             

return:子函数返回语句(可以带参数,也可不带参数)

                short:声明短整型变量或函数                                      

signed:声明有符号类型变量或函数          

sizeof:计算数据类型或变量长度(即所占字节数)

static:生命静态变量                                      struct:声明结构体类型

switch:用于开关语句                                     typedef:用于给数据类型取别名

unsigned:声明无符号类型变量或函数            union:声明共用体类型

void:生命函数无返回值或无参数,声明无类型指针

volatile:说明变量在程序执行中可被隐含的改变

while:循环语句的循环条件。

以上只是按字母顺序排列,具体分类以后再说。

             

三:控制语句 9个

       选择:if    switch

       循环:for      do    do…while

       返回:return               break      continue         goto

 

标识符:函数名,变量名等。

  规则:

       标识符由字母、数字、下划线组成,不能以数字开头,不能和关键字相同,不能重名。

 

程序是对数据进行处理的,数据必须存放在存储器中


存储器分为外存(硬盘,U盘,光盘等)和内存(内存,缓存以及寄存器)

 

外存是非易失性存储器,即掉电后数据不丢失,可以持久存放数据,制造成本低,容量大,但读写效率较低。数据是以文件的形式存放在外存设备上的,也称ROM(Read-Only Memory,只读存储器)

 

内存是易失性存储器,即掉电后数据会丢失,用来存放临时数据,比如变量或中间运算结果,读写效率很高,但制造成本高,容量小,也称为RAM(Random Access Memory,随机访问存储器)

 

计算机的世界是二进制的,一切非二进制数据要能被计算机程序处理,必须先转换为二进制形式(这个过程就称为编码),存储器也只能存放二进制数据

 

存储单位:用来衡量数据量的大小

bit 简写b,即比特或位,一个二进制数字(0或1)

Byte 简写B,即字节,1B = 8b

KB 千字节, 1KB = 2^10B = 1024B

MB 兆字节,1MB = 2^10KB

GB 吉字节,1GB = 2^10MB

TB 太字节,1TB = 2^10GB

 

计算机存储整型数据的方式是以补码的方式

原码是二进制数    反码是原码的按位取反数    补码是反码+1的数

正数和0的三码都用原码表示(老师说的,纯属扯淡,首先原码和反码就肯定不一样,看来我要自己去看书了,我对我将来的学习有了隐隐的担忧)。首先要非常肯定的是,计算机存储数据是以补码的方式存储就够了。具体的无符号型数据与有符号型数据的运算,可以自己去多多尝试,寻找正确答案。

原创粉丝点击