保持一向的风格, 进入正题以前,先写一段废话. 编程
写点东西是件轻松的事, 我从未将写内容看成是一种负担. 可是生活中总有一些事情会扰乱心神. 我是说我以前想把一篇内容写全,写丰富完整事实上我写的很短. 固然我知道不少内容都只是站在一个主观的角度去理解C. 固然里面也会是错误百出.不管怎样,它记录了我当时的学习进度,表明当前状态以及对C这门语言的理解程度. 或许之后重读旧文的时候,会认为本身是多么的无知. 更重要的是,我以为文字能记录本身当时的情景.
思绪老是很乱, 不少时候我都是在写着写着,而后有了思路,就知道该如何去作, 不少事情也是. 但愿这篇也会慢慢进入状态.我以为有点混乱了. 内容穿插不起来,造成不了主线. 不管结果怎样, 保持一种阵型好了. "赶快去作". 数组
上篇内容主要给出的仍是一个小例子, 以前也有提过, 主要是关于 typedef , 类型, 数组的本质, 经过指针访问数组. 期间仍是一个小魔法. 用一个指定的类型指针指向一个数组. 经过这个指针访问数组的内容. 这种方式是一种魔法, 可是在C里面很管用.C里面处处都用获得. 透过表象理解本质最重要. 数组访问方式只是指针访问的一种很人性化的方式而已. 咱们不该该害怕它. 相反.咱们更好的利用它. 数据结构
计算机的本质是数字计算机. 要是深究起来, 一切都是数字, 说到编程. 机器语言是最直接的方式. 可咱们没有必要任何事情都用机器语言来操做机器,C语言就是让人读的, 写的程序恰巧可让机器运行. 因此里面的一些概念用一些更人性化的方式来表述.
好的代码在排除了基本功能,让机器能运行以外. 保证使用它的人能读懂也是很重要的一条. C语言在这方面把握的很到位. 既有低级语言的特性, 有不缺少高举语言的表示形式. 咱们学习它,就应该学习它的优势, 尽可能避免它的缺点,尽量写出更人性化的,更易懂的代码. C语言里字符串的形式就很是的有意思. 有一些很常见的关于字符串的形式. 也很人性化.
char a[]="hello world!";
const char *a="hello world!":
第一种是标准的方式, 第二种, 会初始化一个指针a 并将 字符串的地址放进去a里面. 不少工做都被 程序代替了. 人要作的相对少不少. 学习
以前提到过 typedef , 其实 typedef 的应用不少不少. 结构化方面, 它的功劳不容忽视.
还记得char short int long 这些内容吗? 都是类型.用来修饰变量的. 变量都占有存储空间, 空间的大小就是根据 这些决定的. C 在这方面也作颇有人性化, 服务很到位. 它有 其它 概念来服务.这些复杂的内容. 结构 struct, 联合 union, 枚举 enum. 这些数据类型都颇有意思. 若是和 typedef 配合使用 就能够方便的 用本身定义的数据类型来讲明代码,使之更容易理解.
struct stu_a { char x;}; struct stu_a val; 和 struct stu_a{char x;} val;的方式是同样的.
更好的方式是利用 typedef struct {char x;} STR_A ; STR_A val; 这样的方式会有一个 自定义类型 STR_A 却不会产生 像前两个 stu_a 结构名. 指针
在 struct stu_a {char x;} ; 语句中, 说明的只是有一个 结构,名字是 stu_a; 若是以后 用语句 stu_a val; 试图声明一个变量是会出错的. stu_a 只是一个结构的名字. 可是若是加上 typedef struct stu_a stu_a; 后, stu_a 就能够做为一个类型了. 此时 若是用 stu_a val ; 那么 stu_a 就是一个 类型名; 若是用 struct stu_a val; 那么 stu_a 就是一个结构名. 有了typedef的存在, C语言变得很人性化.事情都简单多了. 这些都很灵活. 怎么应用, 仍是看每一个人的习惯. 字符串
在数组,指针,字符串里面穿插这些介绍. 也不是毫无目的. 数学
这些内容都是基本的概念, 在应用中.不必去探究那么难懂的细节. 咱们的目的只有一个,写出逻辑清晰,结构简单的表达准确的代码. 以上这些只是为了这个目的存在的. 然咱们尽可能去回避那些让人摸不透的东西. 让咱们用数组的东西去处理那些有相似行为的变量. 而不是用指针. 例子中指针只是让咱们更好的去了解数组的本质. 在应用中. 仍是用人性化的东西比较好. 指针是神奇的魔法. 它能的目的不是扰乱咱们的思路. 它应该为 简化问题 这个目的存在的. io
其实这个草稿我都写好有些日子了.一直存放在草稿箱里. 本来准备贴点实用的例子, 后来发现那不现实. 那样会让文章用无结束. 例子是应用程序的话,一切应用均可以再好点. 这些例子不该该是用来秀的. 编译
数组,指针,字符串. 重点仍是受指针. C语言里.指针是个很是优美的东西. 指针 是有名字的. 指针又存储空间, 指针存储空间里存放的是一个地址. 声明的时候 能够 初始化这个指针, 声明的类型 能够是强制转换的. 能够增长对指针变来那个增长 const 来限制 指针不可更改,也能够限制 指向的内容不可更改. 指针操做时本质, 数组形式是咱们人性化的操做方式. 若是有选择,咱们应该习惯用数组方式, 用数字下标来访问内容. 可是了解指针的本质能让咱们更好的利用指针实现相似于数组的方式访问内容. 变量
结构, 类型, 很很差叙述清楚的东西. 结构,联合, 这些能够认为是一种存储方方式的定制, typedef 能够理解成用来定义类型的. 每一种类型 都有本身的存储方式. 结构以及联合属于混了型机构. 能够定义个各类结构, 变量 声明的时候须要的是类型, 类型不只有结构,还有存储位置,编译连接后造成最终可执行文件过程当中. 会留给已经声明的变量存储空间的. 可是类型却不必定有存储空间.
数据结构. 编程的目的是解决实际问题. 用数学的方式来处理问题, 是一种抽象的概念.
现实生活中会有不少相关的内容, 不止有数字,字符串, 相关的内容有组织的放在一块儿会造成数组形式.
好吧,就这样停住吧.