本来打算是要说一说变量和数据类型的内容,但是整理一下,发现需要插队先说一下程序结构。另外,还发现数据类型要展开的内容还是蛮多的。因此,数据类型的内容就留待下一篇文章。

程序结构

在上篇文章的最后,写了一段最简单的C语言程序代码 - 打印HelloWorld。借用这段代码,来说一下C语言中的程序结构。

#include<stdio.h> int main() { printf("Hello World"); return 0; }

在这段代码里,包含了以下几个部分:

1、预处理指令

在C语言程序中,以#号开始的命令被称之为预处理指令。其作用是,根据源代码中的预处理部分进行处理,处理完毕后才开始正式编译你的源代码。

这段代码中的#include,是文件引入指令。可以引入外部写好的源代码文件,相当于就是将引入的源代码文件复制到自己写的源代码文件中。这样一来,就可以调用外部文件中的内容。

代码中就引用了一个C语言的标准库 stdio.h,可以调用一些输入和输出的方法。例如 scanf、printf 等等。如果没有引入这个文件,就需要自己去实现怎么将内容输入到电脑上,怎么将内容输出到电脑屏幕上。实现这一个过程,其实还是挺麻烦的,既然别人已经写好了,那么又何必去大费周章地折腾呢?

2、主函数

主函数相当于是C语言的大门,函数里面的程序就是C语言要运行的主体部分,遇到关键字return就结束程序。同时,每个C语言程序有且仅有一个大门,就像每户人家只有一扇大门。一个有身份的人来拜访,肯定是从大门迎接,也是从大门送客。而这个有身份的人,就是系统。

​int 是函数的类型,也就是函数最终要返回的数据是什么类型的。

main 是函数的名字,() 里面是函数的参数内容,{} 里面是函数的逻辑主体,也就是程序运行的主要内容。这些部分,就留待后面函数部分再详细展开。

3、执行程序

在这一段代码中,一共被执行了两个程序。一个是调用了标准库 stdio.h 中的 printf 方法,用来将 Hello World 打印在控制台(电脑屏幕上)。

另一个是 return 0。return 是C语言中的一个关键字,当函数碰到 return 的时候就表示已经结束了,同时还要把 return 后面的内容返回出去。这里返回一个0,表示程序终止的意思。

变量

变量的作用是用来存储​值,而值存储的位置是在内存中。可以理解为每创建一个变量就需要在内存中​开辟出一个空间,用来存储值。​因此,变量指向的是内存中的存储单元。

如果没有变量,​那对于程序员无疑是一场灾难。假设我现在有100个变量存放在内存中,那么我需要记住100个​编号(内存中有很多的存储单元,每个单元都对应的编号,编号是用16进制表示:61ff1c)。​显然,这是不可能的。

像我这么懒的人,如果看到要记这么多的东西,那这辈子都不可能​学编程的。

c语言进阶学习步骤(从零开始学习C语言程序结构和变量)(1)

所以,变量​很好地解决了这个问题。值存储在哪个存储单元,它的编号是什么,这就不是我需要考虑的,我只需要记住变量名就够了。而且这个变量名我可以根据值的内容来进行命名比如age、name等等,这不比​16进制的编号好记?

一个变量是具备了:变量类型、变量名、​变量值这三要素。

把内存比作一座准备出租的大楼,每个房子都是一个变量。房子的类型有单间、复式、三室一厅等等,这对应的是变量的类型;房子的编号就是变量名;入住的租客就是变量值。

声明方式

声明变量的方式一共有两种方式。

第一种,先声明,再赋值。首先要把盒子建好,但是在一开始不知道要往盒子里面装什么具体的东西,等到后面有用的时候装进去。

int main() { int a; a = 123; }

第二种,声明时同时赋值。手上有具体的东西,同样第一时间是需要把盒子建好,然后同时把东西放进去。

int main() { char c = 'a'; }

命名规则

正所谓无规矩不成方圆,理论上你的变量你爱叫啥叫啥,但是也得在规矩范围内。就像你赚钱你爱怎么赚怎么赚,但就不能赚刑法这本书里面的钱,否则就得请你去吃公家饭了。

C语言中,起变量名的规则有下面几条:

1、变量名必须以字母(A-z)、下划线(_)起头。

2、变量名不能以数字(0-9)起头。

3、变量名中只能包含字母、下划线、数字等。其他花里胡哨的符号是不被允许的。

4、变量名不能和关键字一样,如return、continue、int等等。

5、变量名不允许用空格。

有效变量名:good、for_、_close、ac12_3f

无效变量名:1abc、return、for、hey man

同时C语言中是严格区分大小写的,也就是 A 和 a 是两个不同的变量名。

C语言关键字

c语言进阶学习步骤(从零开始学习C语言程序结构和变量)(2)

本篇文章到这里就结束了,希望能够对大家的学习解理产生帮助。下一篇内容来聊一聊C语言当中的基本数据类型。

,