本文发布于微信公众号:三玹
本来打算是要说一说变量和数据类型的内容,但是整理一下,发现需要插队先说一下程序结构。另外,还发现数据类型要展开的内容还是蛮多的。因此,数据类型的内容就留待下一篇文章。
在上篇文章的最后,写了一段最简单的C语言程序代码 - 打印HelloWorld。借用这段代码,来说一下C语言中的程序结构。#include<stdio.h>
int main(){
printf("Hello World");
return 0;
}
在这段代码里,包含了以下几个部分:
在C语言程序中,以#号开始的命令被称之为预处理指令。其作用是,根据源代码中的预处理部分进行处理,处理完毕后才开始正式编译你的源代码。这段代码中的#include,是文件引入指令。可以引入外部写好的源代码文件,相当于就是将引入的源代码文件复制到自己写的源代码文件中。这样一来,就可以调用外部文件中的内容。
代码中就引用了一个C语言的标准库 stdio.h,可以调用一些输入和输出的方法。例如 scanf、printf 等等。如果没有引入这个文件,就需要自己去实现怎么将内容输入到电脑上,怎么将内容输出到电脑屏幕上。实现这一个过程,其实还是挺复杂的,既然别人已经写好了,那么又何必去大费周章地折腾呢?主函数相当于是C语言的大门,函数里面的程序就是C语言要运行的主体部分,遇到关键字return就结束程序。同时,每个C语言程序有且仅有一个大门,就像每户人家只有一扇大门。一个有身份的人来拜访,肯定是从大门迎接,也是从大门送客。而这个有身份的人,就是系统。int 是函数的类型,也就是函数最终要返回的数据是什么类型的。main 是函数的名字,() 里面是函数的参数内容,{} 里面是函数的逻辑主体,也就是程序运行的主要内容。这些部分,就留待后面函数部分再详细展开。在这一段代码中,一共被执行了两个程序。一个是调用了标准库 stdio.h 中的 printf 方法,用来将 Hello World 打印在控制台(电脑屏幕上)。另一个是 return 0。return 是C语言中的一个关键字,当函数碰到 return 的时候就表示已经结束了,同时还要把 return 后面的内容返回出去。这里返回一个0,表示程序终止的意思。变量的作用是用来存储值,而值存储的位置是在内存中。可以理解为每创建一个变量就需要在内存中开辟出一个空间,用来存储值。因此,变量指向的是内存中的存储单元。如果没有变量,那对于程序员无疑是一场灾难。假设我现在有100个变量存放在内存中,那么我需要记住100个编号(内存中有很多的存储单元,每个单元都对应的编号,编号是用十六进制表示:61ff1c)。显然,这是不可能的。像我这么懒的人,如果看到要记这么多的东西,那这辈子都不可能学编程的。
所以,变量很好地解决了这个问题。值存储在哪个存储单元,它的编号是什么,这就不是我需要考虑的,我只需要记住变量名就够了。而且这个变量名我可以根据值的内容来进行命名比如age、name等等,这不比16进制的编号好记?一个变量具备了:变量类型、变量名、变量值这三要素。把内存比作一座准备出租的大楼,每个房子都是一个变量。房子的类型有单间、复式、三室一厅等等,这对应变量的数据类型;房子的编号对应了变量名;入住的租客对应变量值。第一种,先声明,再赋值。首先要把盒子建好,但是在一开始不知道要往盒子里面装什么具体的东西,等到后面有用的时候装进去。int main(){
int a;
a = 123;
}
第二种,声明时同时赋值。手上有具体的东西,同样第一时间是需要把盒子建好,然后同时把东西放进去。
int main(){
char c = 'a';
}
正所谓无规矩不成方圆,理论上你的变量你爱叫啥叫啥,但是也得在规矩范围内。就像你赚钱你爱怎么赚怎么赚,但就不能赚刑法这本书里面的钱,否则就得请你去吃公家饭了。1、变量名必须以字母(A-z)、下划线(_)起头。
3、变量名中只能包含字母、下划线、数字等。其他花里胡哨的符号是不被允许的。4、变量名不能和关键字一样,如return、continue、int等等。有效变量名:good、for_、_close、ac12_3f无效变量名:1abc、return、for、hey man同时C语言中是严格区分大小写的,也就是 A 和 a 是两个不同的变量名。
本篇文章到这里就结束了,希望能够对大家的学习理解产生帮助。下一篇内容来聊一聊C语言当中的基本数据类型。