前言
printf("java天下第一");
printf("java天下第一");
个人介绍:
大家好,欢迎来到C语言浮游塔“艾恩葛朗特”,这里是设计人茅场晶彦(误)渡枫,此专栏的作者。
初衷:
因为自己很多软件相关的朋友在大一初学C语言的就直呼“难上了天”,随机便选择了“开摆”,随着一年时间过去,我这些朋友变得越来越难以理解老师所讲的内容。
作为班上的C语言课代表,本身C语言也学的蛮不错,便想着通过文字的方式来帮助他们快速的掌握C语言的基本内容。
那么接下来,就让我们以爬塔的方式,去开始学习C语言吧!
Link Start!
目录
前言
浮游塔第1层:起源
浮游塔第2层:软件
浮游塔第3层:程序设计及其语言
浮游塔第4层:简单的C语言程序
浮游塔第5层:字符集
浮游塔第6层:标识符
浮游塔第7层:关键字
浮游塔第8层:数据类型
浮游塔第9层:常量
浮游塔第10层:变量
后记
浮游塔第1层:起源
C语言,1972年诞生于美国的贝尔实验室,是在B语言的基础上发展出的一门面向过程的高级语言,创始人汤普森和里奇并用它重写了第一个在DEC PDP-11计算机上实现的UNIX操作系统,在此后,随着UNIX的发展,C语言也在不断的完善,两者起到了相辅相成的作用。
为了C语言的推广,许多的专家学者和硬件厂商联合组成了C语员言标准委会,并在之后的1989年,诞生了第一个完备的C标准,就是常用到的“C98”标准,不过截至2020年,最新的C语言标准为2018年6月发布的“C18”标准。
浮游塔第2层:软件
想必看这篇文章的同志大多都是软件相关专业,既然如此,那么何为软件呢?
软件=程序+数据+文档
从某种意义上来说,软件是一种产品,是由程序、数据以及相关的文档所组成的完整集合。
-
程序:是为了实现特定目标或解决特定问题,而用编写的命令序列的集合。
程序=算法+数据结构
-
数据:就是程序在运行过程中涉及到的信息。包括:数字、文本、图片、视频 、音频等文件。在计算机中,所有数据都要转换成二进制代码形式来进行处理。
-
文档:是在程序开发、维护以及使用过程中的相关的图文文件。
浮游塔第3层:程序设计及其语言
所谓的程序设计,就是指编写程序的过程。
程序设计语言是人与计算机之间交流的工具,程序设计必然使用程序设计语言来实现。
源程序(.c)在输入计算机后,需要“翻译程序”将其翻译成二进制形式的目标程序(.obj),然后再经过”链接“将目标程序与库函数进行链接,变为可执行程序(.exe),计算机才能识别和执行。
这个过程可以类比为子弹的上膛和发射:
在拿到子弹(源程序.c)后,首先要将子弹填入(翻译)弹匣,其次要将装有子弹的弹匣(目标程序.obj)装入(链接)枪械中,这样,它才变成了可以使用的枪械(可执行程序.exe)。
这种“翻译”通常有两种方式,即编译方式和解释方式。
编译方式:如C、C++、Java
指在源程序执行之前,将程序的源代码“翻译”成目标程序。
解释方式:如Python、JavaScript(专门制作网页特效的脚本语言)
源程序一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行。
程序设计语言大致上分为两类:
- 低级语言:
- 机器语言:二进制代码,以0,1的形式来表示,是计算机内部唯一能识别的代码
- 汇编语言:是以“助记符”的形式来表示,学习难度比较大。
特点:与硬件联系更紧密,运行效率高,但是学习难度大,移植性差。
- 高级语言:
常见的高级语言有:
- C:面向过程的高级语言。主要用于底层开发,
- C++:面向对象的高级语言。也可以开发底层软件,游戏或应用软件。
- Python:面向对象的,解释型的高级语言,主要用于:人工智能、大数据分析,统计等。
- Java:面向对象的高级语言。一般适合企业级项目的开发。
- C#:面向对象的高级语言。主要用于开发网站和中小型项目。
特点:与硬件的联系不是很紧密,运行效率相对来讲比较低,学习难度较容易,适用领域更广。
浮游塔第4层:简单的C语言程序
说了这么多概念,下面就让我们正式的走入C语言吧。
首先来上第一个演示程序
#includeint main() { printf("TECH OTAKUS SAVE THE WORLD!n"); printf(" 技术宅拯救世界! n"); //我不过是个路过的技术宅罢了(大雾) return 0; }
我们可以将上述程序分成几个部分。
//预处理指令,把头文件stdio.h包含进来 #include//主函数main,程序最先执行的地方,程序有且只有一个main函数。 int main() { //主函数体,利用printf函数,将文件打印出来 printf("TECH OTAKUS SAVE THE WORLD!n"); printf(" 技术宅拯救世界! n"); //单行注释(好奇怪哦,用单行注释给单行注释做注释...) //我不过是个路过的技术宅罢了(大雾) //除了单行注释之外还有多行注释,以为结束,中间可以相隔很多行。 //main的返回值。 return 0; }
浮游塔第5层:字符集
C语言的基本字符集有两种:
- 源字符集(书写C语言源文件所用的字符集)
- 执行字符集(C语言程序执行期间解释的字符集)
源字符集:
- 字母:大小写英文字母各26个
- 阿拉伯数字:0~9
- 格式符:空格、水平制表符、垂直制表符、换页符
- 特殊字符:
- _ ( ) [ ] { }
- 算术运算符:+ - * / % ++ --
- 关系运算符:< > >= <= == !=
- 逻辑运算符: ! && || ~ & | ^
- 条件运算符:? :
- 赋值运算符:=
- 转义符:
- 界定符号:’ “ , ;
- 移位符号: >> <<
- 成员运算符: . ->
执行字符集:
在源字符集的基础上,
还包括空字符、换行符、警报符、退格符(BS)和回车符(CR)。
浮游塔第6层:标识符
任何东西都有一个独属于它的名字,在C语言中就是标识符
标识符的作用:
作为变量、函数、标号、文件及用户定义的对象的名称.(C语言区分大小写字母)
标识符的定义:
标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。标识符的有效长度为1-32个字符
浮游塔第7层:关键字
所谓关键字,就是很关键的字,不是普通的字。(大雾)
关键字,
是具有特定含义的标识符,用户不能将关键字作为普通标识符使用。
根据ANSI标准,C语言共有32个关键字。
| auto | break | char | case | const | continue | do | double |
| default | enum | extern | float | for | goto | if | else |
| int | long | register | return | short | signed | sizeof | static |
| struct | switch | typedef | unsigned | union | void | volatile | while |
浮游塔第8层:数据类型
就像动漫分为恋爱番、穿越番、机战番等等一样,数据也有多种分类。
一、基本类型:
①字符类型:
字符在内存中占1个字节,其ASCII码值的范围为0~127,
其中0~31是控制字符,32~127是可显示字符。
字符型在表示的时候,要用单引号括起来。
②整形:
- 整形:int
- 无符号一般整形:unsigned [int]
- 短整型:short int或short
- 无符号整型:unsigned short
- 长整型:long int或long
- 无符号长整形:unsigned long
在计算机内存中,所有的数据都要转换成二进制代码(补码)的形式来保存。
③实型:
实型数据又分为两种:
- 单精度型(float)
- 双精度型(double)
| 关键字 | 字节数 | 取值范围 | 精度(位) |
| float | 4B | 约±3.4×10±38 | 7 |
| double | 8B | 约±1.7×10±308 | 15 |
在表示的时候,若有一个数:98.8,默认是double类型;
若要表示为float类型,则可以后面加上F或f,如:98.8L
若88表示长整型,则表示为88L。
因构造类型、指针类型和空类型会在后面有详细提及,故在此处不加以赘述。
浮游塔第9层:常量
常量(在程序运行过程中,其值不发生变化的量)
常量是固定值,在程序执行期间不会改变。
常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串常量。
一、整型常量:
①十进制整型:
其常量表示与数学上的整数表示相同,通常没有前缀,输出格式控制符为%x;
基数为10,可以用D表示。
如:-132 65534 0
②八进制整型:
其常量表示必须以数字0作为前缀,输出格式控制符为%o;
八进制数通常是无符号数。基数为8,可以用O表示。
如:0017 0123 0177777
③十六进制整型:
其常量以0x或0X作为前缀,输出格式控制符%x;
由0~9,A~F或a~f组成,十六进制数通常也是无符号数。基数为16,可以用H表示。
如:0x4b
二、实型常量:
实型常量是用带小数点的数字表示的,其值有两种表达形式,分别为:
①十进制小数形式
由数字和小数点组成,必须有小数点,且小数点的位置不受限制。
②指数形式
由十进制数加上阶码标志“e”或“E”及阶码(只能为整数,可以带字符)组成,
其一般形式为:xEn。
其中:x为十进制数,n为十进制整数,其值为x×10n。
三、字符常量:
普通字符:是用单引号括起来的一个普通字符。例如:‘2’,‘D’,‘f’,‘=’,‘+’。
转义字符:用反斜杠“”开头,后跟一个或多个字符,是特殊的字符常量,具有特定的含义。
四、字符串常量:
字符串常量是由一对双引号括起的字符序列。
例如:“China”、“编程神域 C语言篇”、“$12.3”。
注意:
‘2’与“2”在内存中的存储情况是不同的,
’2’在内存中1个字节,
而“2”在内存中占2个字节,第一个字节存’2’,第二个字节存’ ’(字符串的结束标志)
五、符号常量:
符号常量用标识符表示一个直接常量,其在使用前一定要先定义。
用于作为符号常量使用的标识符一般用大写字母,作为变量使用的标识符一般用小写字母。
一般形式为:
#define 标识符 常量
例如#define PI 3.1415926
#define COUNT 5
#define是一条编译预处理命令,称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义,以后再程序中除字符串外的所有出现该标识符的地方均代之以该常量值。
浮游塔第10层:变量
变量(在程序运行过程中,其值是可以被改变的量)
变量是指在程序运行过程中其值是可以被改变的量。
按定义的类型可以将其分为:整型变量、实型变量、字符型变量等。
每个变量都必须起一个名字,即变量名,而它必须是合法的C语言标识符,
变量名代表内存中某个存储空间及其所存的数据,所存储的数据称为变量的值。
变量的定义
其一般形式为:[存储类型] 类型标识符 [变量名1 ,变量名2,变量名3,...];
例如: auto int x,y,z;
类型标识符:指定变量的类型
[ ]:表示可选项
;不可省略,表示程序中的语句结束
存储类型指明变量的存储特性,有static 、auto等
变量的初始化
在定义变量时给它赋一个初始值叫变量的初始化。
其一般格式为:变量名1=初始数据1[,变量名2=初始数据2,变量名3=初始数据3,...];
例如:char c1=’a’,c2=’3’;
int a=1,b=5,c=7;
在C语言中,
变量可以在定义的时候进行初始化值,也可以先定义变量后初始化值。
如:
①先定义后使用:
int a,b;
a=10;
b=20;
②定义的同时直接初始化:
int a=10,b=20,c=30;
注:一个变量在定义后,系统会自动给该它分配相应长度(和数据类型有关)的存储空间。
后记
好了,这就是C语言浮游塔的第1层至第10层的内容了,希望本次的内容能帮助到看到这的你,
第11层至第20层的内容目前正在施工,预计在一日后发布,敬请期待。


![[编程神域 C语言浮游塔] 欢迎来到C语言的世界 [编程神域 C语言浮游塔] 欢迎来到C语言的世界](http://www.mshxw.com/aiimages/31/994257.png)
