程序存在的意义就是要利用数据给人类提供便利。
C语言提供有两大系列的多种数据类型。
下面我们就着重的介绍整数类型和浮点数类型。
请看下面的示例。(来源于:《C Primer Plus》,略作改动。)
#include <stdio.h>
int main(void)
{
float weight; /*你的体重*/
float value; /* 相等重量的白金价值*/
printf("Are you worth your eright i platinum?\n");
printf("Let's check it out.\n");
printf("Please enter your weight in pounds: ");
/* 获取用户的输入 */
scanf_s("%f", &weight);
/*假设白金的价格是每盎司$1700 */
/*14.5833用于把英镑常盎司转换为金衡盎司*/
value= 1700.0 * weight * 14.5833;
printf("Your weight in platinum is worth $%.2f.\n", value);
printf("You are easily worth that! If platinum prices drop,\n");
printf("eat mort to maintain your value.\n");
return 0;
}
输出应该为
Are you worth your weight in platinum?
Let's check it out.
please enter your weight in pounds:156
Your weight in platinum is worth $3867491.25.
You are easily worth that!If platinum prices drop,
eat more to maintain your value.
这个示例用到了整数类型的变量(int)和浮点数类型的变量(float),能够处理更大范围的数据。其中,在printf()中使用了%f来处理浮点值,%.2f指:输出的浮点数只显示小数点后面两位。scanf()函数用于读取键盘输入,%f则表示scanf()函数要读取用户输入的浮点数,&weight规定scanf()把输入的值赋给weight。
1.int类型
int类型的值必须为整数,int可以声明多个变量,在int后列出多个变量,每个变量后用逗号隔开。
在C语言中,初始化可以在声明中直接完成,只需在变量后加上(=)和赋值即可,注意一点,不要把不需要初始化的变量和需要初始化的变量放在同一条声明中。
C语言通常把大多数的整型常量视为int类型,但是一些非常大的整数除外。
printf()函数可以打印int类型的值,格式化字符串中的每个%d都与待打印的int值相匹配。
下面看看示例,顺便看看犯错会导致的结果。(来源于《C Primer Plus》,稍作改动。)
/*print1.c-演示peintf()的一些特性*/
#include <stdio.h>
int main(void)
{
int ten = 10;
int two = 2;
printf("正确的做法: ");
printf("%d minus %d is %d\n",ten,2,ten - two);
printf("错误的做法: ");
printf("%d minus %d is %d\n",ten); //遗漏2个参数
return 0;
}
输出结果如下:
正确的做法: 10 minus 2 is 8
错误的做法: 10 minus 16 is 1650287143
在第二行输出中,由于没有给后面两个%d提供任何值,所以输出的值就可能是内存中的任意值。
使用printf()函数时,要确保转换说明的数量与待输出的数量相同。
当然,除了int,也还有其他整数类型。(注意,这是在C99的标准下。)
- short int ---------占用的内存可能会比int小,常常用于较小的数值。
- long int ----------占用的内存可能会比int小,常常用于较大的数值。
- long long int -----占用的内存可能会比long long int大,常常用于更大的数值,一般来说,至少占64位。
- unsigned int -----只能用于非负值,从0到任何正整数。
- unsigned long int-----只能用于非负值,占用的内存可能会比unsigned int大。
- unsigned long long int-----只能用于非负值,占用的内存可能会比unsigned long int大。
2.char类型
char可以看做是整数类型,但是它储存的却是字符(如,字母,标点符号。)。
实际上char确实存储的是整数,而不是字符。
无论是16位系统还是32位系统,都可以使用char类型。
1.声明char类型
声明char类型的变量和其他类型的变量声明一样。
举个例子:
char response;
char itable,latan;
//以上的声明创建了3个char类型的变量:response,itable和latan。
2.字符常量和初始化
在C语言中,用单引号括住的单个字符被称为字符常量。
举个例子:
char broiled; //声明一个char类型的变量
broiled = 'T'; //为其赋值,正确的操作
broiled = T; //错误!此时的T是一个变量
broiled = "T"; //错误!此时的T是一个字符串