程序离不开数据。
把数字,字母和文字输入计算机,就是希望他利用这些数据完成某些任务。
C语言为我们提供了两大系列的多种数据类型。
先来大致了解下这些数据类型:
-
int类型常量:
即整数类型,C语言把不含小数点和指数的数作为整数。int类型用%d打印。
int类型占4个字节 -
char类型:
即字符类型,char类型用于储存字符,(字符:字母或标点符号),但从技术层面来看,char是整数类型。因为char类型实际上储存的是整数而不是字符。计算机使用数字编码来处理字符,即特定的整数表示特定的字符。常用ASCII编码(用兴趣的话可以去查看)。char类型用%c打印。
char类型占1个字节 -
float类型:
即单精度浮点型,float类型用%f打印。 -
double类型:
即双精度浮点型,double类型用%lf打印。
如果存储比精度更重要,请考虑使用float类型,如果精度比存储更重要,请使用double类型先区分警告与错误的区别:
警告:不终止编译,但结果可能不是你想要的结果。
错误:表明程序中有错误,不能进行编译。变量与常量
常量:有些数据类型在程序使用之前已经预先设定好了,在整个程序的运行过程中没有变化,这些称为常量。
变量:其他数据类型在程序运行期间可能会改变或被赋值,这些称为变量。
命名规则:由字母,数字,下划线组成,且不能以数字开头,不能与关键字相同。int类型
下面用int类型来操作,展示如何声明变量,并赋值输出。
声明变量,可以声明一个,例:
int a;
也可以声明多个,而多个变量可以单独声明每个变量,例:
int a;
int b;
int c;
也可以在int后面列出多个变量名,变量名之间用逗号隔开,例:
int a,b,c;
这两种声明变量的效果相同,都为a,b,c,3个int大小的变量赋予名称,并分配内存空间。
以上只是创建变量,但并没有给他们提供值,而变量如何复制呢?
可以用下面这几种方法。
- 直接复制:a = 5;
- 通过scanf()函数赋值(如果不了解scanf()函数,可以在文章末尾进行了解);
- 初始化变量的同时赋值:int a = 21;
int a = 2;
打印int值,
#include <stdio.h>
int mian()
{
int ten = 10;
int two = 2;
printf("Doing it right : ");
printf("%d minus %d is %d \n", ten - two);
printf("Doing it woring: ");
printf("%d minus %d is %d \n", ten); // 遗漏两个参数
return 0;
}
其他的数据类型的声明,赋值,打印和int类型相似。
#include <stdio.h>
int main()
{
char a = 'A'; //这里把一个字符常量初始化为字母A,不必记下ACSII值,直接把A初始化赋给a即可
float b = 1.1;
double c = 2.34;
printf("字符: %c \n" , a);
printf("浮点数: %f \n" , b);
printf("浮点数: %lf \n" , c);
return 0;
}
C语言还有一些从基本类型衍生的其他类型,包括数组,指针,结构和联合。
当然,基本数据类型肯定不止这些,还有其他的,
基本数据类型:
关键字:
基本数据类型由11个关键字组成:int,long,short,unsigned,char,float,double,signed,_Bool,_Complex,_Imaginary(最后两个是复数和虚数类型,想了解的话可以自行百度,也可以参考《C Primer Plus》)。
有符号整型
-
int——系统给出的基本整数类型。C语言规定int类型不小于16位。(前面已经介绍过)
-
short 或 short int ——最大的short类型整数小于或等于最大的int类型整数。C语言规定short类型至少占16位。
-
long 或 long int ——该类型可表示的整数大于或等于最大的int类型整数。C语言规定long类型至少占32位。
-
long long 或 long long int —— 该类型可表示的整数大于或等于最大的long类型整数。long long类型至少占64位。
一般而言,long类型占的内存比short类型大,int类型的宽度要么和long类型相同,要么和short类型相同
无符号整形
无符号整形只能表示零和正整数,因此无符号整形可表示的正整数比有符号整形的大。在整数类型前加上关键字unsigned表明该类型是无符号整形:unsigned int ,unsigned long , unsigned short。
字符类型 -
char —— 字符类型的关键字。
布尔类型
- _Bool —— 布尔类型关键字。布尔类型是无符号int类型,所占用的空间只要能储存0和1 即可。
实浮点类型
- float —— 系统的基本浮点类型。可精确表示至少6位有效数字。(前面介绍过)
- double —— 存储的浮点数范围(可能)更大,能表示float类型更多的有效数字(至少10位,通常会更多)和更大的指数
- long double —— 储存比浮点数的范围(可能) 比double更大,能表示double类型更多的有效数字和更大的指数
最后介绍两个函数,scanf()和 printf()
scanf() 函数:scanf("%d" , &a);
%d 说明scanf() 函数要读取用户从键盘输入整形数
&a 告诉scanf() 函数把输入的值赋给名为a的变量
&符号,在scanf() 中表明找到变量的地点
printf() 函数 : printf("%d", a);
%d来处理整形数,输出到屏幕上。
参考文献 《C Primer Plus》