一、标识符
标识符有点类似与我们小学数学里面,解方程的时候,设置的未知数。因为我们在编程问题的时候,会遇到很多的东西,为了表似乎他们,我们对其设置对应的x
、y
(即未知数)。这些我们设置的这些未知数(标识符)大致分为变量名、数组名、函数名、标号及用户定义对象的名称。对于刚入大学,学习C语言的初学者,我们最初接触到的代码是关于最基础的加减法,而变量名就是用来进行加减法的数字(通过这么一个例子理解,具体要另外讨论)。数组名就是各个数组而起的名字。而数组,在我们大一的学习过程中,担当的就是存储数据的作用。同理,函数名就是给各个函数取得名字。在C语言程序里,有主函数main
函数和其他的函数。主函数在工程文件夹里面有且只有一个,而其他函数则是帮助主函数实现某种功能,让主函数更加简洁。
标识符只能由字母、数字、下划线组成,且必须以字母或下划线开头。从这个角度来看,标识符则更像是我们英语里面的单词,不同类型的单词发挥着不同的作用。而主要的类型也就是上面讲的:变量名、数组名、函数名、标号及用户定义对象的名称。另外标识符的大小写非常敏感,不能乱写。并且不能使用关键字。
二、关键字
C语言的关键字,可以理解成英语里面的形容词和介词。而这些词语的用法是固定的,不能够随便使用。以下便是常见的一些关键字:
void: 声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果 char: 字符型类型数据,属于整型数据的一种 int: 整型数据,通常为编译器指定的机器字长 float: 单精度浮点型数据,属于浮点数据的一种 double: 双精度浮点型数据,属于浮点数据的一种 return: 用在函数体中,返回特定值(或者是void值,即不返回值) continue:结束当前循环,开始下一轮循环 break: 跳出当前循环或switch结构 goto: 无条件跳转语句 if: 条件语句 else:条件语句否定分支(与if连用) switch: 分支结构(多重分支语句) case: 分支结构中的分支标记 default:分支结构中的“其他”分治,可选 for: for循环结构,for(1;2;3)4;的执行顺序为1->2->4->3->2...循环,其中2为循环条件 do: do循环结构,do 1 while(2);的执行顺序是1->2->1...循环,2为循环条件 while: while循环结构,while(1) 2;的执行顺序是1->2->1...循环,1为循环条件
另外,C语言还是用一些标识符作为编译预处理的命令单词。编译预处理,则相当于我们在做小学解方程的题目的时候,设未知数讲题目条件的步骤。在使用的时候还要带上#
,常见的单词如下:define
,elif
,else
,endif
,error
,if
,ifdef
等。
三、数据类型
数据的基本类型如下:
在数据类型的基本类型里面,包括了字符型、整型、实型和无值型。很多初学者在学C语言的时候,面临的问题就是不知道这些类型是用来干什么的。总而言之,这五个单词(char
、int
、float
、double
和void
)发挥的是英语里面形容词的作用。就是告诉计算机,我们敲在屏幕上的,是一个英语单词,一个整数,还是一个小数?以下面的一个代码为例,我们在a,b
前加了int
,那么这两个就是整数,在后面进行的就是数学的加减乘除的运算。如果说我们把int
改成char
,则表示这两个数是英语单词的意思。而在计算机里面,“英语单词”也是可以进行加减法的,但并不是数学上十进制的加减法,而是根据ASCALL码来进行的加减法。
对于数据类型的基本类型,我们只需要这五个单词修饰的是什么样的数据就可以了。期末考试的时候,并没有其他的要求。
#include <stdio.h> #define PI 3.1415926 int main(){ int a, b; double answer1, answer2, midu1 = 7.86, midu2 = 19.3; scanf_s("%d%d", &a, &b); answer1 = midu1 * a * a * a * PI / 6000; answer2 = midu2 * b * b * b * PI / 6000; printf("%.3f %.3f", answer1, answer2); return 0; }
构造数据类型包括数组、结构体、共用体和枚举四种。在大学学习C语言,只需要掌握前两种即可。
数组是一组连续、有序的存放在一起的具有相同类型的数据。简单来说,就是一个用来放东西的容器。以下面一个例子为例。首先,在编程里面,不管我们在程序里面写什么。用之前都必须要进行定义,就是告诉计算机我们写的东西是个啥。我们刚才说过,int
是一个修饰整数的形容词,这里用来定义数组,就是说这是一个用来装整数的容器(数组)。中括号里面的1000
表示,只能够容纳1000个整数;第二行的代码同理。在这里,我们只是简单说一下,数组的功能是什么,长什么样子。
int a[1000]; char b[100];
结构体则是将不同类型的数据按一定顺序存放在一起的数据结构。结构体也是一个容器,在使用的时候也需要定义。结构体和数组的区别在于,结构体是一种能够容纳信息种类更多的容器。举一个例子,以期中考试成绩单为例。数组只能够容纳表格中的一列数据,也就是说数组只能够记录学号、姓名、系别这些东西里面的其中一个。而结构体则能够容纳下一整张表格的内容,并且按照排列归纳好。
结构体的定义,是下面这样子的:
struct stdu { int dex; char name[12]; int Chinese; int Mate; int English; float aver; };
指针类型比较复杂,所以我们在后续的文章中进行介绍。