vlambda博客
学习文章列表

C语言:基本语法汇总

目录

本文将对计算机编程的入门语言——C语言中的基本语法,包括判断,循环,函数,结构体,数组等概念进行介绍讲解。




1

 判断语句


在生活中我们经常要做出选择,程序也是如此。购物时的标准,优惠券的折扣条件等,在代码中都需要if语句来进行判断。假如我们要判断一个正整数是偶数还是奇数,可以这样子写

C语言:基本语法汇总

C语言:基本语法汇总


其中if后面括号中的 x%2 == 0 是一个判断语句,当x%2的值等于0的时候,x%2==0成立,这个表达式会返回1给if语句,表示条件成立。而我们知道,正整数x如果模2等于0,就说明它是偶数。除了a==b可以判断a和b是否相等之外,也可以用a!=b来判断a和b是否不相等。这个多敲点代码就明白了。


2

 for循环


接下来我们来学习循环的概念。如果我们要计算1+2,可以简单的定义两个变量i=1和j=2,然后让answer=i+j,就得到了我们想要的结果。但是,如果我们要计算1+2+3+...+100呢?难道我们要定义100个变量吗?理论上是可以这样做,但是这样的代码写起来就很没有效率。我们将要学习的循环可以很好的解决这个问题。

C语言:基本语法汇总


以这个代码中的for循环为例,i=0表示初始化的内容,i<=100表示循环继续执行的条件。i++表示在每次循环体执行完之后执行的内容19-21行的中括号{}表示循环体的部分,这里我们循环执行ans = ans + i。在第一次循环时,i=1,执行完循环体后ans的值为1。之后执行i++后i=2,符合i<=100的条件,因此进入下一次的循环……以此类推,直到i=101的时候,跳出循环。



3

while循环


while循环,是for循环的另一种写法。它的基本语法如下:

while(循环条件){ 循环体;}

同样是计算1+2+…+100,使用while循环的写法如下:

C语言:基本语法汇总


配套循环还有两个语句,分别是continue和break。continue让代码跳过当前循环,进入下一次循环。break则是跳出整个循环。假设我们现在要计算前100个正奇数的和,代码可以这样写:

C语言:基本语法汇总


代码解析:

51行:while(1)代表一个条件判断永远为1的循环,也就是无限循环。

52-55行:判断当前的i是否为偶数,是偶数则continue跳过当前循环。

56-58行:判断是否已经计算了100个奇数,如果是则跳出循环。

当我们使用for循环或者while循环时,条件判断永远成立,使得循环体一直循环反复地执行的情况,就是死循环。死循环可以说是新手最常犯的一个错误。例如,使用while循环的时候,忘记使用break,或者是自变量忘了自增,都可能导致死循环。


4

数组


假如我们有一组学生的成绩,在程序中要如何保存这组数据呢?我们可以使用很多的变量,但是更合理的方式是用数组来进行存储。所谓的数组,其实就是按顺序排列好的一组变量。比如int a[5];对第一个位置的变量赋值为10可以用a[0]=10进行赋值。要取出第一个位置的值,只需要取a[0]即可。

ps:a[i]中的i称之为下标,需要注意的是,大部分编程语言中,下标都是从0开始,而不是从1开始,这与现实世界有些违背。

C语言:基本语法汇总


C语言:基本语法汇总




5

函数


在计算1+2+…+100后,可能我们会想着计算1+2+…+1000,或者是2+3+…+101等不同范围的求和,这样我们需要不停地改动代码。如果能够把计算这个部分抽取出来,单独作为一个部分,想要计算的时候,只要输入范围,就可以帮我们计算这个范围求和之后的值。函数就是这样一个工具,它把一个特定的过程抽取出来,作为一个模块,可以重复调用。


C语言:基本语法汇总


代码解析:

图中的3-9行就是一个函数,其中的int calculate_sum(int start,int end),第一个int表示的是返回值的类型。代表当这个函数被调用时,会返回一个int类型的值。后面的calculate_sum是函数名,使用函数时主要是根据函数名来指定函数。而后面括号中的start,end是两个int类型的参数,参数的多少是根据我们的需要自己设置的。

在定义的时候,我们并不知道参数start和end具体的值,进行函数调用时,需要指定参数的值。比如13行中,int ans1 = calculate_sum(1,100);把1传给了start,100传给了end。由于函数的返回类型为int,所以定义的ans1也是int类型。

在函数的帮助下,当我们有了新的计算需求后,并不用修改原有的代码,只需要增加新的代码即可,代码的可维护性大大提高。



6

结构


一个学生,有学号,有成绩,如何在c语言中表示“学生”这个概念呢?结构体就可以实现。结构体的关键字是struct,定义完之后,就可以用结构体来代表一个学生。

C语言:基本语法汇总


代码解析:

12-15定义了一个结构体student,它包含了int类型的学号number,以及int类型的成绩score

18-20定义了学生a,学号为1,成绩为100.

21-23定义了学生b,学号为2,成绩为90

24-26定义了长度为10的结构体数组x,并把a,b放在数组的开头。



7

指针




然而,指针的知识点比较复杂,一开始不理解也没关系,并且也不建议初学者去深究指针知识点,知道有这个概念即可。等以后有需要用到了,再深入学习。