第2章 C语言概述

2.1 C语言示例解释

#include

#include<stdio.h> 这一条指令的作用相当于把stdio.h文件的所有内容都输入该行所在的位置。

#include 这行代码是一条预处理指令。C编译器会在编译之前对源代码做一些准备工作,即预处理。有一个C预处理器。

C编译器软件包,都提供stdio.h文件。C程序顶部的信息集合被称为头文件。

C语言不内置输入输出,是因为不是所有程序都会用到I/O包。轻装上阵体现了C语言的哲学。经济使用资源的原则。

函数

函数时C语言程序的基本模块。

C语言一定从main()函数开始执行。()用来识别main()是一个函数。

int
是main()函数的返回类型。表明main()返回的值是整型。

注释

/*
*/ 被这两个符号括起来的部分是程序的注释。写注释是写给读者看的,让别人能明白你的意思。编译器会忽略注释。

另一种注释的表现形式是
/

花括号、函数体和块

花括号把main()函数括起来,简而言之,C函数都使用花括号标记函数体的开始和结束。

声明

声明是C语言最重要的特性之一。

int
num 声明做了两件事,声明了一个名为num的变量;表明了该变量的数据类型是int

int
是 C语言定义的关键字。关键字是语言定义的单词,不能用作其他用途。

num
是 一个标识符,也就是变量、函数或其他实体的名称。

C语言中,所有变量都必须先声明才能使用。变量的声明必须放在块的顶部。其他语句不能再任何声明的前面。

赋值

赋值是C语言的基本操作之一。

C语言通过赋值运算符而不是赋值语句完成赋值操作

printf函数

printf(),括号内的内容是main()函数传递给printf()函数的信息。该信息叫作参数。

return语句

如果遗漏了main()函数中的return语句,程序在运行至最外面的花括号时会返回0。因此可以省略return语句。但是不能再其他有返回值的函数中漏掉它。所以还是强烈建议养成在main()函数中添加return语句的好习惯。可将其看作是统一代码风格。

转义序列
escape sequence

用于代表难以表示或无法输入的字符。

\t
代表tab

\b
代表BackSpace键

占位符
%d

%
用来提醒程序,此处该打印一个变量。d
表明把变量作为十进制整数打印。

2.2
简单程序的结构

程序由一个或多个函数组成,必须有main()函数。

函数由函数头和函数体组成。

函数头包括函数名、传入该函数的信息,函数的返回类型;函数名后面的圆括号可以识别函数。圆括号中可能有空,可能有参数。

函数体被花括号括起来,由一系列语句和声明组成。

2.4
提高程序可读性的技巧

1、有意义的函数名和写注释;

2、用空行分割概念上的多个部分;

3、每条语句各占一行;

分号的作用是告诉程序一条语句在哪里结束、下一条语句在哪里开始。

2.5
进一步使用C

int
feet, fathoms; 这个语句声明了两个变量,变量之间用逗号隔开->多条声明;

2.6
多个函数

函数原型prototype->告知编译器在程序中要使用这个函数

函数调用function
call ->

函数定义
function definition
->函数本身的源代码

函数原型也叫作函数声明

void
表示空的意思,

void
main(void) 第一个void表示没有返回值,第二个void表示不带参数;

函数的执行取决于它在函数中被调用的位置。所有的C程序都从main()开始执行。C的惯例是把main()放在开头,它提供了程序的基本框架。

2.7
调试程序

程序的错误通常叫作bug。

找出并修正错误的过程叫作调试(debug)。

语法错误:编译器会发现并报错;

语义错误:编译器难以发现;

程序状态:程序执行过程中,某给定点上所有变量的集合。相当于是给计算机一个快照。

跟踪程序状态的方法:1、在程序的关键点钟插入printf函数,来见识制定变量值的变化。2、使用调试器debugger,这是一种程序。会让你一步一步运行另一个程序,并检查该程序变量的值。

2.8
关键字和保留标识符

保留标识符,已经被C语言用来指定了某用途和使用权。

如果把关键字用作变量名的话,编译器会将其视为语法错误。

2.9
关键概念

编程是富有挑战性的事情。程序员要具备抽象和逻辑的思维,并谨慎地处理细节问题。

2.10
小结

1、C程序是一个或多个函数组成的。

2、每个程序必须包含一个main()函数,这是程序要调用的第一个函数。

3、简单的函数由函数头和后面的一对花括号组成。花括号中是由声明、语句组成的函数体。

4、C语言中,大部分语句都以分号结尾。

5、声明->为变量创建变量名,标识该变量中储存的数据类型。

6、变量名是一种标识符

7、赋值表达式语句把值赋给变量,或者更一般地说,把值赋给存储空间。

8、函数表达式语句用于调用指定的已命名函数,调用函数执行完毕后,程序会返回到调用函数后面的语句继续执行。

9、语法
是一套规则,用于管理语言中各有效语句组合在一起的方式;

10、语义
是语句要表达的意思,

11、编译器可以检查出语法错误,但是语义的错误只能在编译完后,从程序的行为中表现出来。

12、检查程序是否有语义错误,要跟踪程序的状态,即程序每执行一步后所有变量的值。

13、关键字是
C语言的词汇。

C语言概述之介绍各种基本概念的更多相关文章

  1. Notes 20180506 : Java程序设计语言概述

    2.Java程序设计语言概述 如果对于开发语言的排行榜有所关注的话,那么会发现很长一段时间以来Java都是位居榜首的高级开发语言,作为一个Java开发者,为此感到骄傲的同时也深感忧虑,骄傲的是自己接触 ...

  2. 1-学习前言&C语言概述

    [C语言]01-学习前言&C语言概述 参考自 http://www.cnblogs.com/mjios/archive/2013/03/12/2956508.html#label2 C语言是我 ...

  3. C语言模块化编译介绍

    C语言模块化编译介绍 模块化编程的概念 所谓模块化变成(多文件开发),就是多文件(.c文件)编程,一个.c文件和一个.h文件可以被称为一个模块. 头文件开发的注意事项: 1)头文件中可以和C程序一样引 ...

  4. OpenGL官方教程——着色器语言概述

    OpenGL官方教程——着色器语言概述 OpenGL官方教程——着色器语言概述 可编程图形硬件管线(流水线) 可编程顶点处理器 可编程几何处理器 可编程片元处理器 语言 可编程图形硬件管线(流水线) ...

  5. java基础---java语言概述

    一.计算机编程的两种范型 1.面向过程的模型---具有线性执行特点,认为是代码作用于数据. 2.面向对象的模型---围绕它的数据(即对象)和为这个数据定义的接口来组织程序:实际上是用数据控制代码的访问 ...

  6. 01 C语言程序设计--01 C语言基础--第1章 C语言概述&第2章 GCC和GDB

    走进嵌入式开发的世界,企业级项目课程让你达到企业嵌入式应用开发要求.名师在线答疑,解决疑难.科学评测体系,系统评估学习.核心项目实........ 30 门课程 241小时12分钟 824 人学习 学 ...

  7. 第1章 Java语言概述--HelloWorld--环境搭建

    SE学什么 第1章 Java语言概述 第2章 基本语法 第3章 数组 第4章 面向对象编程(上) 第5章 面向对象编程(中) 第6章 面向对象编程(下) 第7章 异常处理 第8章 枚举类&注解 ...

  8. 大数据技术之_16_Scala学习_01_Scala 语言概述

    第一章 Scala 语言概述1.1 why is Scala 语言?1.2 Scala 语言诞生小故事1.3 Scala 和 Java 以及 jvm 的关系分析图1.4 Scala 语言的特点1.5 ...

  9. C#语言概述

    C#语言概述 一..NET Framework .NET Framework是Windows的一个不可或缺的组件,它包括公共语言运行库(CLR)和类库两部分. CLR是Microsoft的公共语言基础 ...

随机推荐

  1. opencv中文网站相关下载

    http://wiki.opencv.org.cn/index.php/Download

  2. Java3D读取3DMax模型并实现鼠标拖拽、旋转、滚轮缩放等功能

    /**-------------------------------------------------代码区--------------------------------------------- ...

  3. p1129 [ZJOI2007]矩阵游戏

    传送门 分析 不难想到将黑点的行列连边,然后判断最大匹配是否等于n 代码 #include<iostream> #include<cstdio> #include<cst ...

  4. ARC073D Simple Knapsack

    传送门 题目大意 给你n个物品,你有一个容量为W的背包,每一个物品都有它的重量和价值,让你从n个中选取若干个,使得总重量不超过背包的上限,而且使得价值最大. 分析 首先我们不难发现由于W很大,所以这并 ...

  5. python列表--查找集合中重复元素的个数

    方法一: >>> mylist = [1,2,2,2,2,3,3,3,4,4,4,4] >>> myset = set(mylist) >>> f ...

  6. dfs和bfs算法

    1. 存储图的方式一般是有两种的:邻接表和邻接矩阵,一般存储链接矩阵的方式是比较简单的,也便于我们去实现这个临接矩阵,他也就是通俗的二维数组,我们平常用到的那种. 2. 这里我们主要记录和讲一下bfs ...

  7. matlab任务:FCM分类

    一个朋友让帮忙做图像分类,用FCM聚类算法,网上查了一下,FCM基本都是对一幅图像进行像素的分类,跟他说的任务不太一样,所要做的是将一个文件夹里的一千多幅图像进行分类.图像大概是这个样子的(是25*2 ...

  8. Android之Home键监听封装

    众所周知,我们监听返回键事件,无法是下面两个方法: @Override public void onBackPressed() { //do something //super.onBackPress ...

  9. <超越死亡:恩宠与勇气>节选

    我有一副身体,但我并非自己的身体.我可以看见并感觉到我的身体,然而凡是可以被看见以及被感觉到的,并不是真正的观者.我的身体也许疲惫或兴奋,生病或健康,沉重或轻松,也可能焦虑或平静,但这与内在的真我全然 ...

  10. repo的一些用法

    repo的用法注:repo只是google用Python脚本写的调用git的一个脚本,主要是用来下载.管理Android项目的软件仓库.(也就是说,他是用来管理给git管理的一个个仓库的) 1.下载r ...