C语言基础

    返回首页    发表留言
本文作者:李德强
          第二节 变量与表达式
 
 

        接下来我们来编写一个显示当前月份的每一天的程序,然后通过对此程序代码进行说明,让大家对变量和算数表达式有一定的了解:

 

#include <stdio.h>	                        //包含标准输入输出头文件
                                                /* 这是一个显示一月份
                                                        每一天的程序 */
main()
{
	int month, max;			        //定义两个变量,month用于存放月份,max用于存放这个月天数的最大值
	int day;			        //定义天数的变量,用于显示这个月的每一天
	month = 1;			        //让变量month的值为1,
	max = 31;			        //让变量max的值为31,
	day = 1;			        //让变量day的值为1,
	while (day <= max)		        //在变量day的值小于变量max的值的条件下,循环执行{}中的代码
	{
		printf("%d %2d\n", month, day);	 //在标准输出中显示月份和天
		day = day + 1;			 //每显示一次之后,将变量day的值在原有的基础上加1
	}
}

        这段代码里面包含了C语言中很多需要学习的知识点,我们来一个一个的看:

 

        一、注释符号//和/* */

        双斜杠//后面的内容将会被编译器忽略掉,也就是说在同一行的代码中//后面(右侧)的内容将不起作用,所以我们常常在这里写一些关于本行的代码注释,用于提醒代码阅读者这里的代码是做什么的。或者将一些暂时无用的代码注释掉,使其不起作用。

        /* */分为两部分,前一部分为/* 后一部分为*/。它们是成对出现的,表示在这对符号之间的代码会被编译器忽略,不再起作用。它与双斜杠的区别是,/* */可以跨行,允许在多行之间用此符号将代码注释掉;而//只可以注释到当前行在其后面(右侧)的代码。

 

        二、使用变量

        变量,顾名思义,就是可变的量。变量的类型有很多种,例如:

char 字符型

short短整型

int整型

long长整型

float单精度浮点型

double双精度浮点型

        在这里我们只需要了解这些变量的类型及作用即可,关于变量不同类型的取值范围和用法我们将在后续章节来学习。

        想要使用变量,首先就要在代码中定义一个类型的变量,我们可以用一个英文字母或单词来表示一个数值,而这个数值是可以变化的。例如:

 

int month, max;
int day;

        上面语句表示定义了三个int类型的变量,一个叫month,一个叫max,另一个叫day。值得注意的地方是定义变量时我们可以在声明变量类型后定义多个变量(int month, max;表示它们都是int类型的变量),也可以为每一个变量单独声明类型(int day;)。定义了变量之后,我们就可以使用这个变量了,例如对这个变量进行赋值,也就是让这个变量的值变成我们指定的数值:

 

month = 1;
max = 31;
day = 1;

        这表示让变量month的值变为1;变量让max的值变为31;让变量day的值变为1。其中等号=是赋值运算符,它表示将其右侧的内容赋值到其左侧。

 

        三、循环与条件表达式

        代码中while是一个关键字,表示一个循环功能。循环也就是重复执行大括号{ }中的内容,而循环执行的结束条件由while右侧的小括号()中的条件表达式的值来确定,例如下面的while语句代码:

while(day <= max)
{
}

        它表示在变量day的值小于等于变量max的值时,循环执行{ }中的代码,当day的值大于max的值时,结束循环,程序将继续向下执行。在这里我们看到一个条件表达式day <= max,这个表达式表示一个条件,当这个关系表达式的结果为真时返回1,当这个关系表达式的结果条件为假时返回0。而对于while(){}语句小括号中的内容表示其执行循环的条件,如果其结果为真(值为1,准确的说是大于1)则执行循环,如果其结果为假(值为0)则结束循环。关系表达式有以下几种:

        ==    等于

        !=     不等于

        <      小于

        <=    小于等于

        >      大于

        >=    大于等于

 

        四、算数表达式

        细心的读者会发现:因为day的值为1, 而max的值为31,所以day <= max的结果就会一直是1,那么while则会一直无限的循环下去。所以我们就必须设定一个条件,让循环执行时修改day变量的值,让其在执行一段时间之后其值大于max,这样day <= max的结果就变为了0,于是while则会结束循环执行下面的代码。我们来看一下对day变量的值处理:

while (day <= max)
{
	day = day + 1;
}

        其中我们在while循环体{ }中写入了day = day + 1;这个语句,这是一个算数表达式,它表示将变量day的值上加1,并将结果赋值给变量day,换句话说这个语句的作用是让变量day的值在原有的基础上加1。由于day的初始值为1,max的值为31,while语句每执行一次循环之后对day的值加1,所以在执行循环31次之后day的值变为32,于是当day的值为32时,day <= max的条件表达式的结果为假(值为0)于是结束循环。

 

        五、按格式输出

        在上一节里我们简单的讲述了关于printf函数调用的方法,下面我们再来看看它的其它用法:

while (day <= max)
{
	printf("%d %2d\n", month, day);
	day = day + 1;
}

        我们调用printf函数,这个函数将会在我们的标准输出设备上显示一串文字,在上一节中我们给它传入了一个叫"Hello World!\n"的字符串,于是它显示出了Hello World!而在本节里,我们需要它能够显示一些动态的文字信息,它的函数定义如下:

int printf (char *format, ...);

        左侧的int表示这个函数在执行后会返回一个执行结果,这个结果是一个整型的数字,表示它一共显示了多少个字符。printf为此库函数名,其后的一对小括号为()传入的参数,参数表中第一项char *format表示这是一个字符串(准确的说应该是一个字符型指针,可以先不管它,我们会在后续仔细讲到这个内容)存放了显示的格式,后面的...表示允许传入多个参数,数量是任意的。而代码:

printf("%d %2d\n", month, day);

        表示执行printf函数显示一些内容,字符串中的%d表示这里要显示一个整数,这个整数值的来源则是第一个参数变量month的值,接下来在%d之后有一个空格,于是显示一个空格字符,再接下来%2d表示显示一个整数,这个整数值的来源是第二个参数变量day的值。那么%d和%2d的区别是什么呢?printf的格式定义%nd表示显示一个整数,而n表示这个整数占用的字节位,并向右对齐。例如:day的值为1,使用%2d显示的结果则是占用两个字节,并靠右对齐“ 1”(注意,引号中第一个字符是空格,第二个字符才是1)。

 

        最后,我们来看一下本节开始时完整程序的运行结果:

 

1  1
1  2
1  3
1  4
1  5
//中间内容略
1 31

 

    返回首页    返回顶部
#1楼  loser  于 2019年02月18日10:38:42 发表
 
您好,能再解释一下吗?%d和%2d\n,这里没看懂。
#2楼  李德强  于 2019年02月21日15:45:00 发表
 
按整数格式显示数字,这部分内容在第5节中有介绍
#3楼  loser  于 2019年02月28日13:40:40 发表
 
您好,最近我已经把linux那章学完了,C这章看了一半了,我是没有基础的,然后该怎么学习呢?另外能不能教教这个网站是怎么做的,谢谢!
#4楼  李德强  于 2019年03月06日13:07:09 发表
 
感谢您的支持!学编程要一边学理论一边动手做。另外做网站是用JavaWeb相关技术实现的。
#5楼  我很粗心蛤  于 2019年06月08日13:19:17 发表
 
day = 1; //让变量month的值为1。这段day的解释写成了month。建议纠错
#6楼  我很粗心蛤  于 2019年06月08日13:21:20 发表
 
max = 31; //让变量month的值为31。这段max的解释写成了month。建议纠错
#7楼  李德强  于 2019年06月14日15:09:48 发表
 
感谢您的提醒!此内容已经纠正。
  看不清?点击刷新

 

  Copyright © 2015-2023 问渠网 辽ICP备15013245号