编程学习小结(1)基本概念----c语言

----
云计算、大数据、人工智能,新技术层出不穷,抠码愈久,无力感愈强。IT已经从个人英雄时代进化为一个需要高度协调配合的社会了。作为一个“搞计算机的”被别人问到:“那个XXX软件,我们公司话好多钱买的,你能不能自己做一个?”,回答不能还要加各种解释……;但是也有人问:“计算机这么火,我也想学习编程,怎么学习呢?”嗯,这个问题我可以回答下,也是对自己这么多年学习工作的一个小结,也可以同大家指点改进下

自身经历

先讲下自己的经历,同大多学习计算机的同学一样,入门语言是C;刚开始时没人指导,就找本C语言教材,学习一些基础后,觉得命令行没有意思,想要做个图形界面,看起来炫一点,但是对编程只了解一些皮毛,觉得要用个跨平台的方式比较好,在什么系统上都可以用,多好。折腾了很久,甚至用turbo C的图形库搞了很久,做了一些不忍直视的画面;一直在自己搞,浪费了很多时间,或者说是很长一段时间的学习效率特别低。
这里提醒下自己,不要闭门造车,要多交流;交流的方式有很多,作为一个刚开始的小白,看一个完整系列的教学视频也是交流,注意至少要有一个完成的,避免东看看,西看看始终不成体系,可能存在想当然的情况。

再讲下为什么要学习编程,现在智能产品已经相当普及,编程早已不局限于特定的环境和专业知识,已经越来越普及。

下面就以C为例,结合自己的经历,从入门到入门……
编程语言是一门“人同计算机交流语言”,人用来告诉计算机该如何做,计算机拿到你写的一段代码(语言)之后,就按照顺序,读取一条执行一条,这一条可能是让其那个数相加、相除或者跳转到某一行开始执行;下面就从C语言的基本知识开始

数据类型、运算符与表达式
(一)关键字、变量
作为一个语言,它有一些基本元素,如变量、关键字(do、while、for、int)同英语语言一样它也是有一个个单词组成,每个单词有特定的意思;单词有分类:名词、动词,每个单词由特定的26个字母构成,表示如苹果、蔬菜等或其它意思,你也可以自己创造一个单词,当然,可能只有你自己知道是什么意思;
C语言的单词有两种,关键字 和自定义变量(包括函数名),它也有自己的构造原则,字母数字下划线组成,不能是数据开头等。
关键字是特定的,有:
auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if while static
可以分为数据类型关键字和流程控制关键字
1、数据类型关键字,C语言不同于英语,英语已有很多单词,大家之间互相交流足够了。C语言只有一些上述基本单词,其它的都需要你来创造。如你想创建一个表示整数的单词(即创建一个整形变量)int num; 这里int用于表示num这个单词(变量)是整形的(如1 2 3 100 -5等)
2、流程控制关键字,前面提到,计算机按照编程语言顺序执行,这一行可能是让计算机跳转到特定的行(如goto关键字,goto label告诉计算机跳转到特定行)

(二)运算符
计算机没有人类那么高级,可以理解抽象的意思,它本质上是一个高级计算器,所有的动作在它那里都是对一堆数据进行加减乘除以及对这堆数据的移动;支持的运算如加减乘除、取余、位移等。

(三)程序结构
1、顺序
计算机执行代码同人读书一样,从上到下依次读取、执行
2、选择、循环
就好比你在读一篇技术类文章,可能有下面三种情况:(1)如果你掌握A知识,跳过第一节,否则从第一节开始;(2)如果你已掌握B知识直接从第三节开始,如果已掌握C知识直接从第四节开始;(3)如果读到第五节还没有明白什么意思,那么从第一节开始再读一遍;
这三种情况对应C语言三种结构
A:选择 if ... else ..
if (掌握A知识)
{
从第二节开始
}
else
{
从第一节开始
}

B:switch case (同A有什么区别呢? 以后再说)
switch(掌握情况)
{
case 掌握A知识:
从第二节开始
break;
case 掌握B知识:
从第三节开始
break;
case 掌握C知识:
从第四节开始
break;
default:
好像什么都不知道,从第一节开始吧
}

C:循环,暂且循环有两种,for和while
C1:for循环
for (从章节数第一节开始; 读到第十节;一节一节地读)
{
读取每一节
}
C2:while循环,有两种 do while 和 while()do
前者是先干了再看是什么情况,后者是先看什么情况在干
如:
do{
先读一节看看
}while(嗯,有意思,继续下一节)
---------------
while(问下别人这篇文章是否值得读,值得,那读看看,有意思再继续)
{
读一节
}

(四)数组
前面讲到一些数据基本类型,及定义一个数据,有些时候要定义一组数据,如定义10个整数,怎么办?
可以 int i0; int i2; int i3; int i4; …… int i9;
这样好麻烦~
所以变成语言提供了一种类型,叫做数组,直接 int i[10]就可以啦(这种写法在计算机看来有什么不同呢?以后再表)

(五)结构体
上面提到的数据类型都是单一的,要么字符,要么数字,如果我需要一种抽象点的数据类型,如一个表示学生的数据类型,这个数据类型包含学生的一些基本类型,如学号、姓名、性别等,怎么办呢?
C语言也提供了相应的描述方式,结构体:
struct student
{
int id;
char name[32];
int sex;
};

(六)函数
函数是对执行过程的封装,代码执行的过程中可能有许多公共的流程,你可以再所有用到的地方都把这些流程写一遍,但是这样感觉好low,可以将这些公共的流程封装为一个函数,在需要的地方调用一下即可。
就好比在写一篇技术文章,其中用到某个知识点,你应该不会吧这个知识点相关的内容复制到你的文章中,而是在文章中附上获取到知识点的方式,需要的读者按照这个方式去获取,学习就好了

函数的一般形式:
返回值 函数名(参数列表)
eg:int sum(int a, int b)
类似于上面提到的读者去获取知识点,上面的三个元素对应如下:
学习状态 知识点获取方式(带着什么疑问来学习知识点)

(七)指针
这个是C语言的强大之处,也是不好掌握的地方,指针,顾名思义,它真的就是一个指针,大小固定;由它指向内容的不同而不同。
指向一个整数的指针int *pi; 指向一个上面提到学生类型结构体的指针 struct student *pstu;
它本身是一个数据类型,那么同整形一样,也支持各种运算等~
可以说的很多,这里只对C语言基本概念进行概述,其它的在后面的文章中一一细说。

猜你喜欢

转载自blog.csdn.net/zhoudawei/article/details/55850465