C语言概述之介绍各种基本概念
第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语言概述之介绍各种基本概念的更多相关文章
- Notes 20180506 : Java程序设计语言概述
2.Java程序设计语言概述 如果对于开发语言的排行榜有所关注的话,那么会发现很长一段时间以来Java都是位居榜首的高级开发语言,作为一个Java开发者,为此感到骄傲的同时也深感忧虑,骄傲的是自己接触 ...
- 1-学习前言&C语言概述
[C语言]01-学习前言&C语言概述 参考自 http://www.cnblogs.com/mjios/archive/2013/03/12/2956508.html#label2 C语言是我 ...
- C语言模块化编译介绍
C语言模块化编译介绍 模块化编程的概念 所谓模块化变成(多文件开发),就是多文件(.c文件)编程,一个.c文件和一个.h文件可以被称为一个模块. 头文件开发的注意事项: 1)头文件中可以和C程序一样引 ...
- OpenGL官方教程——着色器语言概述
OpenGL官方教程——着色器语言概述 OpenGL官方教程——着色器语言概述 可编程图形硬件管线(流水线) 可编程顶点处理器 可编程几何处理器 可编程片元处理器 语言 可编程图形硬件管线(流水线) ...
- java基础---java语言概述
一.计算机编程的两种范型 1.面向过程的模型---具有线性执行特点,认为是代码作用于数据. 2.面向对象的模型---围绕它的数据(即对象)和为这个数据定义的接口来组织程序:实际上是用数据控制代码的访问 ...
- 01 C语言程序设计--01 C语言基础--第1章 C语言概述&第2章 GCC和GDB
走进嵌入式开发的世界,企业级项目课程让你达到企业嵌入式应用开发要求.名师在线答疑,解决疑难.科学评测体系,系统评估学习.核心项目实........ 30 门课程 241小时12分钟 824 人学习 学 ...
- 第1章 Java语言概述--HelloWorld--环境搭建
SE学什么 第1章 Java语言概述 第2章 基本语法 第3章 数组 第4章 面向对象编程(上) 第5章 面向对象编程(中) 第6章 面向对象编程(下) 第7章 异常处理 第8章 枚举类&注解 ...
- 大数据技术之_16_Scala学习_01_Scala 语言概述
第一章 Scala 语言概述1.1 why is Scala 语言?1.2 Scala 语言诞生小故事1.3 Scala 和 Java 以及 jvm 的关系分析图1.4 Scala 语言的特点1.5 ...
- C#语言概述
C#语言概述 一..NET Framework .NET Framework是Windows的一个不可或缺的组件,它包括公共语言运行库(CLR)和类库两部分. CLR是Microsoft的公共语言基础 ...
随机推荐
- opencv中文网站相关下载
http://wiki.opencv.org.cn/index.php/Download
- Java3D读取3DMax模型并实现鼠标拖拽、旋转、滚轮缩放等功能
/**-------------------------------------------------代码区--------------------------------------------- ...
- p1129 [ZJOI2007]矩阵游戏
传送门 分析 不难想到将黑点的行列连边,然后判断最大匹配是否等于n 代码 #include<iostream> #include<cstdio> #include<cst ...
- ARC073D Simple Knapsack
传送门 题目大意 给你n个物品,你有一个容量为W的背包,每一个物品都有它的重量和价值,让你从n个中选取若干个,使得总重量不超过背包的上限,而且使得价值最大. 分析 首先我们不难发现由于W很大,所以这并 ...
- python列表--查找集合中重复元素的个数
方法一: >>> mylist = [1,2,2,2,2,3,3,3,4,4,4,4] >>> myset = set(mylist) >>> f ...
- dfs和bfs算法
1. 存储图的方式一般是有两种的:邻接表和邻接矩阵,一般存储链接矩阵的方式是比较简单的,也便于我们去实现这个临接矩阵,他也就是通俗的二维数组,我们平常用到的那种. 2. 这里我们主要记录和讲一下bfs ...
- matlab任务:FCM分类
一个朋友让帮忙做图像分类,用FCM聚类算法,网上查了一下,FCM基本都是对一幅图像进行像素的分类,跟他说的任务不太一样,所要做的是将一个文件夹里的一千多幅图像进行分类.图像大概是这个样子的(是25*2 ...
- Android之Home键监听封装
众所周知,我们监听返回键事件,无法是下面两个方法: @Override public void onBackPressed() { //do something //super.onBackPress ...
- <超越死亡:恩宠与勇气>节选
我有一副身体,但我并非自己的身体.我可以看见并感觉到我的身体,然而凡是可以被看见以及被感觉到的,并不是真正的观者.我的身体也许疲惫或兴奋,生病或健康,沉重或轻松,也可能焦虑或平静,但这与内在的真我全然 ...
- repo的一些用法
repo的用法注:repo只是google用Python脚本写的调用git的一个脚本,主要是用来下载.管理Android项目的软件仓库.(也就是说,他是用来管理给git管理的一个个仓库的) 1.下载r ...