首页 > 编程笔记 > C语言笔记 阅读:42

C语言变量的用法(非常详细,附带实例)

变量就是在 C语言程序运行期间其值可以变化的量,每个变量都属于某种类型,如整型、实型、字符型等,该类型定义了变量的格式和行为。

除了类型,一个变量还应该有属于自己的名称,并且在内存中占有一定的存储空间,其所占空间大小取决于类型。

C语言整型变量

整型变量是用来存储整型数值的变量。

整型变量可以分为如下表所示的 6 种类型,其中基本类型的符号使用 int 关键字,在此基础上可以根据需要加上一些符号进行修饰,如关键字 short 或 long。

表:整型变量的分类
类型 关键字 类型 关键字
有符号基本整型 [signed] int 无符号短整型 unsigned short [int]
无符号基本整型 unsigned [int] 有符号长整型 [signed] long [int]
有符号短整型 [signed] short [int] 无符号长整型 unsigned long [int]

表格中的[ ]为可选部分。例如 [signed] int,在书写时可以省略 signed 关键字。

1) 有符号基本整型

有符号基本整型是指 signed int 型,其值是基本的整型常数。编写时,常将其关键字 signed 进行省略。

有符号基本整型在内存中占 4 个字节,取值范围是 −2147483648~2147483647。

通常说到的整型,都是指有符号基本整型 int。

定义一个有符号整型变量的方法是在变量前使用关键字 int。例如,定义一个整型变量 iNumber,并为其赋值 −10 的方法如下:
int iNumber;
iNumber = -10;
或者在定义变量的同时为其赋值:
int iNumber = -10;

【实例】练习对有符号基本整型变量的使用。
#include <stdio.h>
int main()
{
    signed int i,j;    /*定义有符号基本整型变量*/
    i=-2147483648;     /*为变量赋值*/
    j=2147483647;      /*为变量赋值*/
    printf("有符号整型变量最小值是%d\n",i); /*显示整型变量*/
    printf("有符号整型变量最大值是%d\n",j); /*显示整型变量*/
    return 0;          /*程序结束*/
}
运行程序,显示效果为:

有符号整型变量最小值是-2147483648
有符号整型变量最大值是2147483647

2) 无符号基本整型

无符号基本整型使用的关键字是 unsigned int,其中的关键字 int 在编写时可以省略。无符号基本整型在内存中占 4 个字节,取值范围是 0~4294967295。

定义一个无符号基本整型变量的方法是在变量前使用关键字 unsigned。例如,要定义一个无符号基本整型变量 iUnsignedNum,并为其赋值 111 的方法如下:
unsigned iUnsignedNum;
iUnsignedNum = 111;

3) 有符号短整型

有符号短整型使用的关键字是 signed short int,其中的关键字 signed 和 int 在编写时可以省略。有符号短整型在内存中占 2 个字节,取值范围是 −32768~32767。

定义一个有符号短整型变量的方法是在变量前使用关键字 short。例如,要定义一个有符号短整型变量 iShortNum,并为其赋值 −521 的方法如下:
short iShortNum;
iShortNum = -512;

4) 无符号短整型

无符号短整型使用的关键字是 unsigned short int,其中的关键字 int 在编写时可以省略。无符号短整型在内存中占 2 个字节,取值范围是 0~65535。

定义一个无符号短整型变量的方法是在变量前使用关键字 unsigned short。例如,要定义一个无符号短整型变量 iUnsignedShtNum,并为其赋值 222 的方法如下:
unsigned short iUnsignedShtNum;
iUnsignedShtNum = 222;

5) 有符号长整型

有符号长整型使用的关键字是 signed long int,其中的关键字 signed 和 int 在编写时可以省略。有符号长整型在内存中占 4 个字节,取值范围是 −2147483648~2147483647。

定义一个有符号长整型变量的方法是在变量前使用关键字 long。例如,要定义一个有符号长整型变量 iLongNum,并为其赋值 −3333333 的方法如下:
long iLongNum;
iLongNum = −3333333;

6) 无符号长整型

无符号长整型使用的关键字是 unsigned long int,其中的关键字 int 在编写时可以省略。无符号长整型在内存中占 4 个字节,取值范围是 0~4294967295。

定义一个无符号长整型变量的方法是在变量前使用关键字 unsigned long。例如,要定义一个无符号长整型变量 iUnsignedLongNum,并为其赋值 6666666 的方法如下:
unsigned long iUnsignedLongNum;
iUnsignedLongNum = 6666666;

C语言实型变量

实型变量也称为浮点型变量,是用来存储实型数值的变量,其中实型数值由整数和小数两部分组成。

实型变量根据精度可以分为单精度类型、双精度类型和长双精度类型 3 种。

1) 单精度类型

单精度类型使用的关键字是 float,它在内存中占 4 个字节,取值范围是 −3.4×10^−38 ~ 3.4×10^38。

定义一个单精度类型变量的方法是在变量前使用关键字 float。例如,要定义一个变量 fFloatStyle,并为其赋值 3.14 的方法如下:
float fFloatStyle;
fFloatStyle = 3.14;

【实例】已知银行的年利率是 2.95%,如果在银行中存入 1000 元,一年后可以取出多少钱?(提示:总额=本金+年利率*本金)。具体代码如下:
#include<stdio.h>
int main()
{
    float result;      /*定义单精度类型变量*/
    result=1000+0.0295*1000; /*计算一年后可取出的本金+利息总额*/
    printf("result=%f\n",result); /*显示结果*/
    return 0;         /*程序结束*/
}
运行程序,显示效果为:
result=1029.500000

2) 双精度类型

双精度类型使用的关键字是 double,它在内存中占 8 个字节,取值范围是 −1.7×10^−308 ~ 1.7×10^308。

定义一个双精度类型变量的方法是在变量前使用关键字 double。例如,要定义一个变量 dDoubleStyle,并为其赋值 5.321 的方法如下:
double dDoubleStyle;
dDoubleStyle = 5.321;

【实例】一个圆柱体的粮仓,底面直径为 50 米,高为 15 米,该粮仓体积为多少立方米?如果每立方米能屯粮 896 千克,该粮仓一共可存储多少千克粮食?(提示:体积 = 3.14*半径^2*高)。具体代码如下:
#include<stdio.h>
int main()
{
    double d,h,v,res;  /*定义 4 个双精度类型变量*/
    d=50;             /*对变量赋值,d 表示直径,h 表示高,v 表示体积*/
    h=15;
    v=3.14*(d/2)*(d/2)*h; /*根据体积公式计算粮仓体积*/
    printf("该粮仓体积为%f 立方米\n",v); /*显示结果*/
    res=896*v;        /*计算屯粮量*/
    printf("该粮仓一共可储存%f 千克粮食\n",res); /*显示结果*/
    return 0;         /*程序结束*/
}
运行程序,显示效果为:
该粮仓体积为29437.500000 立方米
该粮仓一共可储存26376000.000000 千克粮食

3) 长双精度类型

长双精度类型使用的关键字是 long double,它在内存中占 8 个字节,取值范围是 −1.7×10^−308 ~ 1.7×10^308。

定义一个双精度类型变量的方法是在变量前使用关键字 long double。例如,要定义一个变量 fLongDouble,并为其赋值 46.257 的方法如下:
long double fLongDouble;
fLongDouble = 46.257;

【实例】定义一个长双精度类型变量表示太阳和火星之间的距离,然后为其赋值 22.794,最后通过输出语句将其显示在控制台。
#define __USE_MINGW_ANSI_STDIO 1
#include<stdio.h>
int main()
{
    long double fLongDouble;  /*定义长双精度变量*/
    fLongDouble=22.794;       /*为变量赋值*/
    printf("火星距太阳有%LF 亿千米\n",fLongDouble); /*将变量值进行输出*/
    return 0;                /*程序结束*/
}
运行程序,显示效果为:
火星距太阳有22.794000 亿千米

C语言字符型变量

字符型变量是用来存储字符常量的变量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。

字符型变量在内存空间中占一个字节,取值范围是 −128~127。

定义一个字符型变量的方法是使用关键字 char。例如,要定义一个字符型变量 cChar,为其赋值 'a' 的方法如下:
char cChar;
cChar = 'a';
字符型变量在内存中存储的是字符的 ASCII 码,即一个无符号整数,其形式与整数的存储形式一样,因此 C语言允许字符型数据与整型数据之间互相转换。

【实例】为定义的字符型变量和整型变量进行不同的赋值,然后通过输出结果观察整型变量和字符型变量之间的转换。
#include<stdio.h>
int main()
{
    char cChar1;      /*定义字符型变量 cChar1*/
    char cChar2;      /*定义字符型变量 cChar2*/
    int iInt1;        /*定义整型变量 iInt1*/
    int iInt2;        /*定义整型变量 iInt2*/

    cChar1='a';      /*为变量赋值*/
    cChar2=97;
    iInt1='a';
    iInt2=97;

    printf("%c\n",cChar1); /*显示结果为 a*/
    printf("%d\n",cChar2); /*显示结果为 97*/
    printf("%c\n",iInt1);  /*显示结果为 a*/
    printf("%d\n",iInt2);  /*显示结果为 97*/
    return 0;             /*程序结束*/
}
运行程序,显示效果为:

a
97
a
97

上述代码首先定义了 4 个变量,两个字符型,两个整型,然后分别赋值为 'a' 和 97。因为字符 'a' 在 ASCII 码中的值正好是 97,因此两者可以互相转换输出。

下面对目前学过的所有数据类型进行一下概括总结,如下表所示。

表:C语言数值型和字符型数据的字节数和数值范围
类型 关键字 字节 数值范围
整型 [signed] int 4 -2147483648~2147483647
无符号整型 unsigned [int] 4 0~4294967295
短整型 short [int] 2 -32768~32767
无符号短整型 unsigned short [int] 2 0~65535
长整型 long [int] 4 -2147483648~2147483647
无符号长整型 unsigned long [int] 4 0~4294967295
字符型 [signed] char 1 -128~127
无符号字符型 unsigned char 1 0~255
单精度型 float 4 -3.4×10-38~3.4×1038
双精度型 double 8 -1.7×10-308~1.7×10308
长双精度型 long double 8 -1.7×10-308~1.7×10308

相关文章