C语言的变量与算术表达式


变量和表达式在C语言中随处可见

现在就利用C语言来写一个华氏温度和摄氏温度的对照表

华氏温度和摄氏温度的对应公式为:设施温度=(5/9)(华氏温度-32)

效果如下

[root@www.bkjia.com]# ./sheshidu
华氏温度      摄氏温度
0    =    -17
20    =    -6
40    =    4
60    =    15
80    =    26
100    =    37
120    =    48
140    =    60
160    =    71
180    =    82
200    =    93
220    =    104
240    =    115
260    =    126
280    =    137
300    =    148

下边是源代码:

[root@www.bkjia.com]# cat sheshidu.c
#include <stdio.h>                                    //宏定义头文件
main()                                                          //主main函数
{                                                                    //函数体
    int i, S;                                                      //变量声明第一处
    int F_max, F_min, buchang;                //变量声明第二处
   
    F_min = 0;                                                //变量赋值
    F_max = 300;
    buchang = 20;
   
    i = F_min;                                                  //变量赋值
    printf("华氏温度      摄氏温度\n");          //打印函数
    while ( i <= F_max) {                              //while循环的开始和循环条件
        S = 5 * ( i - 32 ) / 9;                              //计算出摄氏温度和华式温度的对应关系
        printf("%d\t=\t%d\n", i, S);                  //printf函数打印出i华氏温度和S摄氏温度
        i = i + buchang;                                    //步长,隔几度算一次
    }                                                                  //循环体结束
}                                                                      //main函数结束


第一个知识点 声明


在C语言中,使用一个变量的时候,必须先声明之

如:

    int i, S;                                                     
此处是变量的声明部分,将i,S两个变量声明成int类型

int为什么要声明?

因为C在调用变量之前,必须要有这个变量的存储空间,声明就是问系统申请这个变量的存储空间

一个int类型的值需要多少内存空间?

按编译器而定gcc一般是32位,那么最大值是32个1,十进制是4294967295取值范围应该是-2147483647~2147483647一共是4294967294再加一个0

win下的TC编译器则是16位,那么最大值是16个1,十进制为65535取值范围是(65535-1)/2 一共是+/-的32767之间

64位的编译器则int按以上规则推算

当然C语言的变量类型不止int一种以后有接触到的现解决或者查看有关C语言变量声明的资料,此处笔者只是按int类型来说明这个问题。


此处变量的声明还有一个特点

                    int i,S;

一次声明两个变量i和S,在C语言中“,“英文的逗号,也是一种运算符,它的优先级最低,只是起到一个分隔的作用,以上声明方式可写成如下形式:

                    int i;

                    int S;

这个声明效果和上述的声明效果是一样的,只是上述的易读性高,简单明了,所有在以后的代码书写中,没有特殊意义的,都将如此声明。

第二个知识点 赋值

变量赋值,变量,能够变动的常量,叫做变量,如何变动?那就是赋值,如下:

    F_min = 0;                                                //变量赋值
    F_max = 300;(1处)
    buchang = 20;
   
    i = F_min;    (2处)

以上均为赋值行为,予变量赋值可以赋予常量(1处),也可有赋予变量(2处)
还有一种赋值行为:S = 5 * ( i - 32 ) / 9;

这个表达式计算过程是这样的

首先()的运算级别最高,先算得扩弧内的内容,然后然后*和/是从右到左计算,然后等号的运算级别最低,所以先将等号右边的计算完成后,赋值给等号左边的值


变量的声明和赋值还可以直接声明后进行赋值如下

如i和F_max变量,可以写成:

            int F_max = 300;

            int i = F_MAX;

从上述可以看到,C语言中变量的声明和赋值是可以放到一起的,不管是赋予常量还是变量!


第三个只是点C语言中的加减乘除

S = 5 * ( i - 32 ) / 9;


从表达式这个可以看出运算符“*”是乘法,“-”是减法,“/”是除以则“+”便是加法


第四点while循环

  while ( i <= F_max) {                              //while循环的开始和循环条件,i的值不满足小于等于F_max的值则循环体结束,循环体内的内容有花扩弧扩起来
        S = 5 * ( i - 32 ) / 9;                              //计算出摄氏温度和华式温度的对应关系,循环体动作
        printf("%d\t=\t%d\n", i, S);                  //printf函数打印出i华氏温度和S摄氏温度,循环体动作
        i = i + buchang;                                    //步长,隔几度算一次,每循环一次,循环条件的判断值i加20,知道i的值大于F_max的时候循环体结束


    }                                                                  //循环体结束

C语言变长数组之剖析

C语言需要注意的问题

C语言位域的使用及其注意点

相关内容