C语言变量的用法(非常详细,附带实例)
变量就是在 C语言程序运行期间其值可以变化的量,每个变量都属于某种类型,如整型、实型、字符型等,该类型定义了变量的格式和行为。
除了类型,一个变量还应该有属于自己的名称,并且在内存中占有一定的存储空间,其所占空间大小取决于类型。
整型变量可以分为如下表所示的 6 种类型,其中基本类型的符号使用 int 关键字,在此基础上可以根据需要加上一些符号进行修饰,如关键字 short 或 long。
表格中的
有符号基本整型在内存中占 4 个字节,取值范围是 −2147483648~2147483647。
【实例】练习对有符号基本整型变量的使用。
定义一个无符号基本整型变量的方法是在变量前使用关键字 unsigned。例如,要定义一个无符号基本整型变量 iUnsignedNum,并为其赋值 111 的方法如下:
定义一个有符号短整型变量的方法是在变量前使用关键字 short。例如,要定义一个有符号短整型变量 iShortNum,并为其赋值 −521 的方法如下:
定义一个无符号短整型变量的方法是在变量前使用关键字 unsigned short。例如,要定义一个无符号短整型变量 iUnsignedShtNum,并为其赋值 222 的方法如下:
定义一个有符号长整型变量的方法是在变量前使用关键字 long。例如,要定义一个有符号长整型变量 iLongNum,并为其赋值 −3333333 的方法如下:
定义一个无符号长整型变量的方法是在变量前使用关键字 unsigned long。例如,要定义一个无符号长整型变量 iUnsignedLongNum,并为其赋值 6666666 的方法如下:
实型变量根据精度可以分为单精度类型、双精度类型和长双精度类型 3 种。
定义一个单精度类型变量的方法是在变量前使用关键字 float。例如,要定义一个变量 fFloatStyle,并为其赋值 3.14 的方法如下:
【实例】已知银行的年利率是 2.95%,如果在银行中存入 1000 元,一年后可以取出多少钱?(提示:总额=本金+年利率*本金)。具体代码如下:
定义一个双精度类型变量的方法是在变量前使用关键字 double。例如,要定义一个变量 dDoubleStyle,并为其赋值 5.321 的方法如下:
【实例】一个圆柱体的粮仓,底面直径为 50 米,高为 15 米,该粮仓体积为多少立方米?如果每立方米能屯粮 896 千克,该粮仓一共可存储多少千克粮食?(提示:体积 = 3.14*半径^2*高)。具体代码如下:
定义一个双精度类型变量的方法是在变量前使用关键字 long double。例如,要定义一个变量 fLongDouble,并为其赋值 46.257 的方法如下:
【实例】定义一个长双精度类型变量表示太阳和火星之间的距离,然后为其赋值 22.794,最后通过输出语句将其显示在控制台。
字符型变量在内存空间中占一个字节,取值范围是 −128~127。
定义一个字符型变量的方法是使用关键字 char。例如,要定义一个字符型变量 cChar,为其赋值 'a' 的方法如下:
【实例】为定义的字符型变量和整型变量进行不同的赋值,然后通过输出结果观察整型变量和字符型变量之间的转换。
下面对目前学过的所有数据类型进行一下概括总结,如下表所示。
除了类型,一个变量还应该有属于自己的名称,并且在内存中占有一定的存储空间,其所占空间大小取决于类型。
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。例如,定义一个整型变量 iNumber,并为其赋值 −10 的方法如下:通常说到的整型,都是指有符号基本整型 int。
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
下面对目前学过的所有数据类型进行一下概括总结,如下表所示。
类型 | 关键字 | 字节 | 数值范围 |
---|---|---|---|
整型 | [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 |