C语言编程入门之--第一章初识程序
第一章 初识程序
导读:计算机程序无时不刻的影响着人类的生活,现代社会已经离不开程序,程序的作用如此巨大,那么程序到底是什么呢?本章主要讨论程序的概念,唤起读者对程序的兴趣,同时对C语言程序与其它语言程序进行比较,说明作为一个C语言程序员需要具备的基本理论知识,本章末端简单的描述windows中一个计算器程序是如何工作的。
1.1 什么是计算机程序
从字面上理解,程序就是完成一件事所需要进行的步骤,举个生活的例子,买酱油!需要哪些步骤:
第一种做法:首先要准备好100块钱,然后出门要穿好衣服鞋袜,出门到便利店,拿到酱油付完钱,店家找钱,返回家中。
第二种做法:打开手机,打开外卖的APP,选择酱油,外卖小哥到来后,开门,取酱油。
完成买酱油需要步骤,生活上的点点滴滴都有它的步骤,步骤不局限于一种方法,正所谓条条大路通罗马,步骤也是各式各样。如果把生活上步骤关联到计算机程序上也是一样的,其实写计算机程序就是写步骤。
计算机程序一般也称作计算机代码,专业的说,计算机程序是一组计算机能识别和执行的指令,运行在电子计算机上,满足人们某种需求的信息化工具。当然程序不仅仅运行在计算机上,还可以运行在手机,路由器,导航仪,往大点说,程序运行在航空母舰上,说不定运行在遥远外太空外星人正准备入侵地球的太空飞船上。
图1.1 ET外星人
那为什么要程序呢?因为有些事情靠人动手处理效率实在太低,试想想,如果要计算一个复杂的方程式,靠笔算或者算盘来计算那效率实在低下(注意:不过这里要像我国两弹一星的元勋们致敬,当时他们在计算工具落后的情况下,用算盘计算原子数据)。所以人类发明了计算机,而计算机工作需要运行程序来完成各种任务。
注意:程序只是工具,所以程序能做到的事情,人类一定能做到,但随着人工智能的发展,程序已经可以做人类意想不到的事情了,这块读者可以自行去了解。
2.1 为什么选择C语言
计算机语言有很多种,比如汇编程序,C语言程序,C++程序,JAVA程序,PYTHON程序等等。为什么偏偏选择C语言呢?
原因列举几点如下:
1. C语言入门比较容易,相比较别的语言C语言入门比较容易,不像汇编那样完成一个功能需要写大量代码,有时候1行C语言代码完成任务用汇编说不定需要10行。也不像JAVA那样,类的思想,继承的思想等等搞晕初学者。
2. 很多高级语言都有C语言的影子,变量声明这些,循环语句这些等等,所以C语言可以做学习别的语言的跳板。
3. C语言广泛的应用在嵌入式领域,说明市场需求也大。
4. 它的执行效率很高,可以直接操作内存,后续学习指针会更加理解这块。
5. 读者自行了解。。。。。。
3.1 需要具备的基础
本节讨论一个C语言程序员需要具备哪些基础知识。
3.1.1 简单的英语单词理解
国内的程序员不一定是英语高手,因为只是用键盘敲打代码,不需要考验听力,不需要考验口语,甚至可以直接借助翻译软件。C语言中常用的词汇,如:
main(主要的;重要的),include(包括;包含),define(定义;阐明),后续还有一些C库函数单词,如:printf(输出函数;格式化输出;输出格式化字串),还可以把库函数拆分理解,如:fopen(可以理解为file open的组合,即文件打开的意思),strcmp(可以理解为string compare,词组的意思就是字符串对比)。
编写程序中需要给变量取名,还有给函数取名,为了编写的程序能够让别人更好的理解,以及规范和统一,所以希望读者尽量使用标准的英文单词,如果不懂怎么写可以借助翻译软件。
注意:“变量”和“函数”是程序中的一部分,读者目前如果不能理解它的意思,就先搁着。
3.1.2 计算机基本组成
计算机俗称电脑,它的核心组件有CPU,内存,存储,网卡,显示器,键盘,鼠标等等。文章是与C语言入门有关,所以只需要知道一切运算都在CPU中进行,C语言程序由指令、变量和常量等等组成,指令运行在CPU上,指令从内存中取变量。至于内存和存储的区别以及更详细内容,后续章节指针中会再次提到。
图1.2 计算机构成简图
这里简单的描述一个windows计算器程序运行的过程。
计算器的可执行程序是存放在硬盘上的。笔者电脑使用的win10系统,计算器程序属于系统自带的程序,所以存放在系统盘,系统盘是C盘,所以计算器的可执行程序存放在C:\Windows\System32\calc.exe。
知道了calc.exe的存放位置后,先打开任务管理器,看看正在运行的程序有哪些,这时候还没有点击calc.exe,所以看不到,如图1.3所示,
图1.3 还未打开计算器的任务管理器列表
点击运行calc.exe,可以发现任务管理器多了一个运行的程序叫做计算器,如图1.4所示,
图1.4 打开计算器后任务管理器列表
点击运行calc.exe后(也就是运行计算器程序),计算器程序会在操作系统程序下,由CPU做主要工作,把计算器程序从硬盘放到到内存上,这时候显示器根据显存内容会显示计算器界面,可以通过鼠标点击也可以通过键盘进行加减乘除等等运算,所有的这些运算都会通过内存和CPU的交互来完成,最终把计算的数值显示出来。
4.1自学C语言的途径
1. 可以通过本系列博客,博主会在评论区回答问题,虽然博主不是靠自学的,但是自己希望能够帮助到新手。
2. 最好是通过专业书籍,一般大学课程都是使用谭浩强的C语言教材,经典中的战斗机!
3. 以下链接供参考:
https://zh.cppreference.com/w/c
http://tieba.baidu.com/f?kw=c%D3%EF%D1%D4&fr=ala0&tpl=5
但是看再多资料都不如不停的代码练习来的效果佳!请期待下一章节的发布。。。。。。
C语言编程入门之--第一章初识程序的更多相关文章
- C语言编程入门之--第二章编译环境搭建
第二章 编译环境搭建 导读:C语言程序如何工作,首先需要编译链接成可执行文件,然后就可以运行在不同的环境中,这个“环境”的意思就是比如说,电脑,手机,路由器,蓝牙音箱等等智能设备中,其中编译器启到了关 ...
- Java 面向对象编程——第一章 初识Java
第一章 初识Java 1. 什么是Java? Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以其强安全性.平台无关性.硬件结构无关性.语言简 ...
- Storm入门之第一章
Storm入门之第一章 1.名词 spout龙卷,读取原始数据为bolt提供数据 bolt雷电,从spout或者其他的bolt接收数据,并处理数据,处理结果可作为其他bolt的数据源或最终结果 nim ...
- 《进击吧!Blazor!》系列入门教程 第一章 8.部署
<进击吧!Blazor!>是本人与张善友老师合作的Blazor零基础入门教程视频,此教程能让一个从未接触过Blazor的程序员掌握开发Blazor应用的能力. 视频地址:https://s ...
- 第一章 初识shiro
shiro学习教程来自开涛大神的博客:http://jinnianshilongnian.iteye.com/blog/2018936 第一章 初识shiro 简单了解shiro主要记住三张图即可. ...
- Cocos2d-x 3.0 红孩儿私家必修 - 第一章 初识Cocos2d-x 3.0project
第一章 初识Cocos2d-x 3.0project Cocos2d-x 3.0出来了,听说与之前版本号相比修改较大 做为一个游戏开发人员.我们应该欢迎Cocos2d-x持续的更新和强大,Coc ...
- windows核心编程-第一章 对程序错误的处理
第一章-对程序错误的处理 在开始介绍Microsoft Windows 的特性之前,必须首先了解 Wi n d o w s的各个函数是如何进行错误处理的. 当调用一个Wi n d o w s函数时,它 ...
- VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)
VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)-软件开发-鸡啄米 http://www.jizhuomi.com/software/143.html 鸡啄米在上一讲中 ...
- VS2010/MFC编程入门之四(MFC应用程序框架分析)
VS2010/MFC编程入门之四(MFC应用程序框架分析)-软件开发-鸡啄米 http://www.jizhuomi.com/software/145.html 上一讲鸡啄米讲的是VS2010应用 ...
随机推荐
- Delphi 7下IGDIPlus库的使用
IGDI+是一个免费开源封装微软GDI+功能的Delphi库,该库使得可以用Delphi语言代码快速简短的实现复杂GDI+应用程序.官方网站:http://www.mitov.com/html/igd ...
- HTML5 拖放并删除效果的简单实现
Html5 支持元素drag drop的功能需求,以后实现这类效果会简单很多.. 详细的文档说明在这里 代码如下所示:
- MotionManager 陀螺仪实现方式
题外话: 权利的游戏开播了,引用一句话: 布兰:一个人如果还把,他还能勇敢么? 奈德:人在害怕时候的勇敢,才是真的勇敢. 回归正题: 说下关于 CMMotionManage ...
- 使用Scrapy爬取图片入库,并保存在本地
使用Scrapy爬取图片入库,并保存在本地 上 篇博客已经简单的介绍了爬取数据流程,现在让我们继续学习scrapy 目标: 爬取爱卡汽车标题,价格以及图片存入数据库,并存图到本地 好了不多说,让我们实 ...
- 使用豆瓣的pip源安装python模块
1.指定豆瓣pip源安装Django pip install -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com ...
- 重定向Redirect 的知识
今天下班的时候看到了一些重定向的基础知识,也算开了眼界.以前也经常使用301和302,但从来没有使用过和了解过其他的3XX的状态码,发现原来里面涉及的知识和解决的问题的还不少. 重定向的流程 浏览器首 ...
- 【java】MD5加密工具
MD5: /** * 对指定字段进行MD5加密 * 参数为空或发生异常都会返回 @PASE-_FAIL (-1) * @author ZX * @date 2018年09月10日16:03:07 * ...
- php5.3之命名空间
在php5.3之后,php像c++那样新 命名空间. 1.在同一个文件中不能实例化同一个名字相同的类和同时包含两个不同目录下的相同文件,中包含相同的函数和常量.为了解决这个问题,因此引入了命名空间. ...
- Oracle insert all用法简介
insert all是oracle中用于批量写数据的 现在直接通过例子学习一下,比较简单直观,例子来自<收获,不止SQL优化>一书 环境准备 create table t as selec ...
- Linux搭建DHCP服务器
Linux搭建DHCP服务器 实验目标: 通过本实验掌握基于Linux的DHCP服务器搭建技能. 本实验包含内容为yum的认识与使用,磁盘挂载的概念与使用,DHCP原理及配置,systemctl服 ...