目录

1.C语言概述

1.1C语言发展史

1.2 C语言的特点

2.编写第一个C语言程序

1.C语言编译机制

3.C语言程序的组成

1.#include 的秘密

2.程序的入口——main 函数

3.数据集装箱——常量和变量

4. 输出函数

5.注释


1.C语言概述

1.1C语言发展史

1.ALGOL 60 语言

1960年,由算法表示法被综合后诞生了一种算法语言——ALGOL 60语言(算法语言 60),特点是局部性、动态性、递归性和严谨性。

2.CPL 语言

基于ALGOL 60的高级语言,其规模较大,难以实现。

3.BCPL 语言

BCPL语言是典型的面向过程的高级语言,适用于开发精巧、高要求的应用程序,对编译器要求也不高。也是最早使用库函数封装基本输入\输出的语言之一,这使得其跨平台的移植性很好。

4.B 语言

B 语言只有一种数据类型,即计算机字。大部分操作将其看作整数对待,但其他操作将其看作一个复引用的内存地址。

5.C语言

1989年,ANSI发布了第一个完整的C语言标准——ANSI X3.159——1989,简称“C89”。

C89在1990年被ISO一字不改地采纳,ISO官方给予的名称为:ISO\IEC 9899,简称“C90”。

1999年,ISO官方进行了一些必要的修改和完善,发布了新的C语言标准,命名为ISO\IEC 9899: 1999,简称“C99”。

2011年,ISO又发布了新的标准,称为ISO\IEC 9899:2011,简称“C11"。

1.2 C语言的特点

1.简单紧凑,灵活方便

在C语言中包含32个关键字,9种控制语句,程序书写形式比较自由,区分大小写。

C语言把高级语言的基本结构和语句与低级语言的实用性进行了结合。

2.运算符丰富

C语言有34种运算符,并且在C语言中,括号、赋值、强制类型转换都被作为运算符进行处理,通过各种运算符可以实现在其他高级语言中难以实现的运算。

3.数据类型丰富

数据类型有整型、实型、浮点型、字符型、数组类型、指针类型、结构体类型、共用同类型等,通过这些数据类型可以实现各种复杂的数据类型的运算。

4.表达方式灵活实用

C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,程序设计更加主动,灵活。并且C语言语法限制不太严格,使得程序的设计自由度更大,如整形量与字符型数据几逻辑型数据可以通用等。

5.允许直接访问物理地址,对硬件进行操作

它既具有高级语言的功能,又具有低级语言的许多功能。能像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来编写系统软件。

6.生成的目标代码质量高,程序执行效率高

C语言描述问题比汇编语言迅速,工作量小,可读性好,易于调试、修改和移植,而代码质量和汇编语言相当,C语言一般来讲只比汇编程序生成的目标代码效率低10%~20%。

7.可移植性好

C语言在不同机器上的编译程序,86%的代码是公开的,所以C语言的编译程序便于移植。在一个环境上用C语言编写的程序,不需改动或稍加修改,就可移植到另一个完全不同的环境中运行。

2.编写第一个C语言程序

1.C语言编译机制

1.C语言的编译机制,用编译原理的话来说,分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成几个阶段。

在编译运行的过程中,它包含以下几个步骤:

编辑:

将程序代码输入,交给C语言开发环境。

编译:

将高级语言转化为计算机可以识别的二进制语言,并生成目标程序文件.obj。

连接:

连接就是将编译产生的.obj 文件和系统库连接装配成一个可以执行的程序(*.exe)。

运行:

像运行其他程序一样运行生成的可执行文件(*.exe)。

对C语言来说,一般只需要知道编译和连接两个阶段,编译阶段是将源程序(*.c)转换为目标代码(一般是.obj 文件),连接阶段是把源程序转换成的目标代码(.obj 文件)与程序里面调用的库函数对应的代码连接起来形成对应的可执行文件(.exe  文件)。

3.C语言程序的组成

1.#include 的秘密

一个完整的C语言程序是由一个或多个源程序文件组成的,而每一个源文件中又包含一个或多个函数、预处理命令以及全局变量声明部分。在每一个函数中,又是由函数首部与函数体组成的。

2.程序的入口——main 函数

1.main 函数的形式

main()函数被称为主函数,一个C语言程序总是由main()函数开始执行的

如果在main()前面没有定义函数类型,默认为int 类型。

main()函数没有参数,或者有两个参数。这两个参数,一个是int类型,一个是字符串char类型。

第一个参数是命令行中的字符串数,按照惯例,这个int 参数被称为 argc(argument count)。

第二个参数是一个指向字符串的指针数组。命令行中的每个字符串被存储到内存中,并且分配一个指针指向它。按照惯例,这个指针数组被称为argv(argument value)。

2.main 函数返回值

main 函数的返回值类型是int 型的,而程序最后的“return 0”也与之遥相呼应,“0”就是 main() 函数的返回值。而“0”返回到操作系统,表示系统正常退出,因为  return 语句通常写在程序的最后,不管返回什么值,只要到达这一步,都表示程序已经运行完毕。而 return的作用不仅在返回一个值,还在于结束函数。

3.数据集装箱——常量和变量

在程序执行过程中,数值不发生改变的就是常量,其值可变的就是变量。

他们可与数据类型结合起来。

一个变量拥有一个名字,在内存中占据一定的存储单元,空间大小由数据类型来决定。定义变量必须放在变量使用之前,一般放在函数体的开头部分。

4. 输出函数

printf 函数称为格式输出函数,其关键字中的字母f即为“格式”(format)之意。输出函数的功能是按照用户所指定的格式,将指定的数据显示到屏幕上。

printf 函数调用的一般格式为:

printf("格式控制字符串",输出表列);

其中,“格式控制字符串”用于指定输出格式。“格式控制字符串”可由格式字符串和非格式字符串组成,格式字符串控制输出的数据类型,非格式字符串原样输出。

“输出列表”中给出了各个输出项,要求格式字符串和各输出项在数量和类型上一一对应。

5.注释

#include<stdio.h>
/*主函数*/
int main()
{//输出函数printf("hello world!"\n);return 0;
}

有两种形式://      和    /*要注释内容*/。

注释的原则:

语言准确、简洁、易懂。对程序添加正确的注释能使函数、变量、结构更加清晰合理,增加代码的可读性。

注释的目的:

为程序添加注释是为了解释代码的用途、功能、采用的方法或者编写者的思想等,为阅读者提供了代码以外的信息,帮助读者准确地理解代码。

代码的注意事项:

1.保持代码与注释的一致性,最好是边写代码边添加注释,如果修改程序应将相应的注释一并修改。

2.注释时注意表达内容要简单明了,含义准确,避免二义性。

3.避免在注释中添加缩写,如必须使用,尽量对缩写及逆行说明。

4.注释时应将描述说明放在代码的上方或右边。

5.全局变量在注释时需要包含对其功能、取值范围、包含函数等进行说明。

初始庐山真面目——走进C语言的世界相关推荐

  1. 谷歌I/O走进TensorFlow开源模型世界:从图像识别到语义理解

    谷歌I/O走进TensorFlow开源模型世界:从图像识别到语义理解 2017-05-23 16:13:11    TensorFlow    2 0 0 一年一度的谷歌开发者大会 Google I/ ...

  2. c语言加减乘除运算代码_科协推文 || 走进C语言

    走进C语言 C语言66666!有了C语言还要女朋友干啥?没报错?C语言是世界上最好的语言!!C语言NB!!!我的头发呢?我C慈悲! 说起电脑,你可能对它有不同的印象.但是说起程序,你会想到什么? 帅气 ...

  3. 走进 Growth Hacker 的世界

    在大洋彼岸的硅谷,一种全新的职业--增长黑客,正在逐渐引领和重塑互联网行业营销和增长的理念. 那么增长黑客到底是什么呢? 他们以数据驱动营销,以市场指导产品,通过技术化手段获取最快速度的用户增长,同时 ...

  4. 《神奇的数学》读后感_《走进奇妙的数学世界》读后感

    作者:骆培 我刚成为一名小学数学教师时,我非常疑惑,为什么明明很简单的知识却总是教不会孩子们呢?为什么我们变着法解释数学的好处,他们却无法产生共鸣呢?感悟了许多名家的好课和教学笔录,我深知我们的对象是 ...

  5. HarmonyOS IoT首著,走进万物互联的世界!(附送书)

    关注+星标公众号,不错过精彩内容 来源 | 博文视点 编排 | strongerHuang 1 鸿蒙来了 6月2日,华为发布HarmonyOS 2(鸿蒙)操作系统,连带多款搭载新系统的手机.平板电脑和 ...

  6. 嵌入式Linux开发系列之一: 走进嵌入式Linux的世界

    走进嵌入式Linux的世界 一.嵌入式系统 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件是可裁剪的,适用于对功能.可靠性.成本.体积.功耗等有严格要求的专用计算机系统.嵌入式系统最典型的特 ...

  7. 走进音视频的世界——Matroska封装格式的介绍(二)

    Matroska封装格式非常灵活.兼容性好,既适用于本地文件存储又可以进行实时流传输.本篇文章主要探讨Matroska的编解码器映射,如何封装视频流.音频流.字幕流.如果要Matroska的介绍.功能 ...

  8. 自己写的web标准教程,帮你走进web标准设计的世界——第三讲(html终结篇)

    声明:本教程源于本人学习的一些经验的总结,希望大家帮忙完善与指正,也希望会给初学者带来方便,希望大家不要随便转载,写的不是很好,还不完善,不过转载时要注明作者和出处,附加原文的链接地址,谢谢了 已出: ...

  9. c语言怎么输出线性表里元素,C语言的世界-线性表

    原标题:C语言的世界-线性表 点击在看 关注我们 C语言的世界-线性表 线性表介绍 2020/5/5 了解线性表 线性表是最基本.最简单.也是最常用的一种数据结构.线性表(linear list)是数 ...

最新文章

  1. 鲲鹏入晋 万里腾飞,鲲鹏应用创新大赛2021山西赛区邀你来战!
  2. 企业靠这些 云端数据就能得到企业级的安全守护
  3. 【安全牛学习笔记】拒绝服务***工具
  4. 程序员面试题精选100题(27)-二元树的深度[数据结构]
  5. C语言简洁代码:1006 换个格式输出整数 (15分)
  6. 一些使用javap反编译出来的结果分析
  7. 【ES】es 查询超时listener timeout after waiting for [60000] ms
  8. docker下nginx反向代理和负载均衡配置
  9. Android显示PDF文件之PDFviewer
  10. Winform 开发用户控件
  11. 乐高ev3python教程_入门篇丨使用EV3机器人,趣味学习Python编程语言~
  12. mysql数据库保存文件_MySQL数据库文件介绍及存放位置
  13. orbslam2稠密版建图
  14. 图像检索哈希算法综述
  15. python迭代器与生成器答案,彻底搞懂python 迭代器和生成器
  16. 《挖掘管理价值:企业软件项目管理实战》一2.3 需求分析过程
  17. 做不了爱人,我们做什么
  18. 【Vuejs】1426- 深入解析 Vue 3 基础难点
  19. 查看windows文件名的编码
  20. 2020年浙江大学软件学院预推免面经

热门文章

  1. Access螃蟹购销快录软件
  2. 优傲机器人推出myUR服务交流平台
  3. linux中的vlog命令,视频博客Vlog怎么拍?详细的小白教程来啦!
  4. ASR 隐马尔可夫模型(HMM)
  5. 吉比特笔试编程题 - 最好一样
  6. 2017大二学年 数据结构课程设计-校园十大优秀青年评比
  7. 软件工程结队项目——智能点餐系统典型用户及用户场景分析
  8. vim编辑过程中断,恢复时的警告
  9. 多线程——python
  10. 神经网络中的梯度消失