目录

  • 1 第一章  C语言概述
    • 1.1 第一节  C语言的产生和发展
    • 1.2 第二节  C语言的特点
    • 1.3 第三节  两个简单的C程序
    • 1.4 第四节  C程序的上机步骤
    • 1.5 第五节  Dev-C++介绍
    • 1.6 第六节  VC2010学习版介绍
    • 1.7 第七节  宏定义和文件包含
    • 1.8 本章小结
    • 1.9 本章单元测试
  • 2 第二章  基本数据类型与简单程序设计
    • 2.1 第一节  C语言的基本数据类型
    • 2.2 第二节  常量
    • 2.3 第三节  变量
    • 2.4 第四节  赋值语句
    • 2.5 第五节  数据输出
    • 2.6 第六节 数据输入
    • 2.7 第七节  运算符
    • 2.8 第八节  常用的数学函数
    • 2.9 第九节  顺序结构程序设计
    • 2.10 本章小结
    • 2.11 本章单元测试
  • 3 第三章  分支结构程序设计
    • 3.1 第一节  关系表达式和逻辑表达式
    • 3.2 第二节  if单分支语句
    • 3.3 第四节  if双分支语句
    • 3.4 第五节  if多分支语句
    • 3.5 第六节  case多分支语句
    • 3.6 第七节  分支结构程序设计实例
    • 3.7 本章小结
    • 3.8 本章单元测试
    • 3.9 书中本章习题答案
  • 4 第四章  循环结构程序设计
    • 4.1 第一节  为什么需要循环控制
    • 4.2 第一节  while循环
    • 4.3 第二节  do ... while循环
    • 4.4 第三节  for循环
    • 4.5 第四节  多重循环
    • 4.6 第五节  break语句和continue语句
    • 4.7 第六节  循环结构程序设计实例
    • 4.8 本章小结
    • 4.9 书中本章习题答案
  • 5 第五章 数组
    • 5.1 第一节  一维数组的定义和使用
    • 5.2 第二节  二维数组的定义和使用
    • 5.3 第三节  字符数组的定义和使用
    • 5.4 第四节  数组的应用举例
  • 6 第六章  函数
    • 6.1 第一节  函数的定义
    • 6.2 第二节  函数的调用
    • 6.3 第三节 数组作为函数参数
    • 6.4 第四节  变量的作用域
    • 6.5 第五节 变量的存储类别
    • 6.6 第六节 函数应用实例
  • 7 第七章 结构体和共用体
    • 7.1 第一节  概述
    • 7.2 第二节  定义结构体变量的方法
    • 7.3 第三节 结构体变量的引用
    • 7.4 第四节 结构体数组
    • 7.5 第五节 共用体
    • 7.6 第六节  结构体和共用体应用实例
  • 8 第八章 指针
    • 8.1 第一节  指针的概念
    • 8.2 第二节  指向简单变量的指针
    • 8.3 第三节 指向数组的指针变量
    • 8.4 第四节  指向字符串的指针变量
    • 8.5 第五节 指针作为函数参数
    • 8.6 第六节  指向结构体的指针变量
    • 8.7 第七节 指针应用实例
  • 9 第九章  文件
    • 9.1 第一节  文件概述
    • 9.2 第二节  文件的打开和关闭
    • 9.3 第三节 文件的读/写函数
    • 9.4 第四节  文件定位函数
    • 9.5 第五节  文件应用实例
  • 10 附录
    • 10.1 附录A  基本字符ASCII码表(0~127)
    • 10.2 附录B  运算符优先级表
    • 10.3 附录C 常用C库函数表
    • 10.4 附录D  编译常见错误提示
    • 10.5 附录E  常见C语言英语单词
    • 10.6 附录F  如何从十进制转换为二进制
    • 10.7 附录G  如何把二进制数转化为十进制数
    • 10.8 附录H  什么是编译器
    • 10.9 附录I  与编译器相关的几个知识点
第三节  变量
  • 1 文字讲解
  • 2 视频讲解
  • 3 过关测试

一、变量

1、变量的定义      

     在程序的运行过程中,值可以改变的量称为变量。

2、变量与变量名的含义

       每个变量都有一个名字,称为变量名每个变量都必须进行变量说明,指明变量的类型,相当于给变量进行注册。编译时,系统根据变量的类型,在内存中分配合适大小的存储空间,这样就可以将该变量名与其对应的存储空间联系起来,所以,引用变量的存储空间是通过变量名来引用的

例如变量说明:

       int k=50;

       如下图所示:

                

       其中,int是类型标识符,k是变量名,50是变量k的初值。可以把变量理解成内存中的某一段存储空间。上面的变量说明表示将此段内存空间命名为k,而50则是存放在这段存储空间中的数值,需要引用这段存储空间,要通过变量名k。

3、变量名的命名规则

       变量名和符号常量名的命名方法相同,都是用标识符表示。标识符就是一个名字,其命名必须按照一定的规则进行,只能由字母、数字和下划线组成,且第1个字符必须为字母或下划线,不允许使用数字。如下面是合法的标识符:

       Class_1、_abcl、id、a1b2、sum、 total

       而下面是不合法的标识符:

       a b        // 标识符不能含空格符

       1a        // 标识符不能以数字开头

       #abc    // 标识符不能使用“#”

       xyz-1    // 不要把减号“-”和下划线“_”混淆

        注意:大写字符和小写字符被认为是两个不同的字符。如a1和A1是两个不同的标识符,如果作为变量,则是两个不同的变量,不能使用保留字

       保留字    是指系统中已经存在的固定好的名字

       习惯上,变量名用小写字母表示。为增加可读性,所用标识符最好能“见名知义”。“见名知义”就是指看到该变量名,马上就能联想到它可能存储什么样的数据。如表示“姓名”的变量可用英文单词name,或汉语拼音的缩写xm。

4、变量与符号常量的区别

       变量和符号常量的不同之处在于:变量的值可以改变,而符号常量的值不可以改变。例如,说明了“#define    G   9.8" 和“int  k=50;”后,执行k=60;”是允许的,而执行“G=77;”则是错误的。

例2-1  定义整型变量和字符型变量。

      int   i, j,k;

      char c1,c2;

 上面两行语句定义了3个int型变量i、j、k和2个字符型变量c1、c2。

例2-2  定义浮点型变量

      float    x1, x2;     //定义两个单精度浮点型变量

      double  z1, z2;   //定义两个双精度变量

      float   x;

      double y;

      x=123456.789      //给变量赋初值

      y=1.23456789E5;

       上面定义了几个浮点型变量。

        上面语句中,x为单精度变量,y为双精度变量,第5行赋给变量x的值为9位,超过了其有效位数的范围,最后两位将被丢弃,但进行四舍五入,x的实际值是123456.8;而y的有效位数是17,所以能够接收9位数字。

     注意:浮点数由“精度”和“范围”确定。C语言中 float的有效位数是7,即精确到有效数字的第7位,每个单精度变量占用4个字节,有效值范围为 ~ ; double的有效位数是17,精确到有效数字的第17位每个双精度变量占用8个字节,有效值范围为 ~ 

二、拓展资料

1、验证变量所占用存储空间

#include  <stdio.h>

main()

{

       int  a;

       int  k = 50;

     a = sizeof(k);

     printf("%d,%d\n",k,a);

}

2、验证浮点数的精度

#include  <stdio.h>

main()

{

      float  x=0.123456789123456789123;

      double y=0.123456789123456789123;

      printf("%30.20f,%30.20f\n", x, y);

}

运行结果如下:


由程序运行结果得出:float精确到有效数字的第7位,double精确到有效数字的第17位。

3、验证浮点数的范围

#include  <stdio.h>

main()

{

      float  x=0.123e110;

      double y=0.123e110;

      printf("%e,%e\n", x, y);

}

运行结果如下:


由程序运行结果得出:double表示的范围比float大