变量

程序离不开数据。
把数字,字母和文字输入计算机,就是希望他利用这些数据完成某些任务。
C语言为我们提供了两大系列的多种数据类型。
先来大致了解下这些数据类型:

  1. int类型常量:
    即整数类型,C语言把不含小数点和指数的数作为整数。int类型用%d打印。
    int类型占4个字节

  2. char类型:
    即字符类型,char类型用于储存字符,(字符:字母或标点符号),但从技术层面来看,char是整数类型。因为char类型实际上储存的是整数而不是字符。计算机使用数字编码来处理字符,即特定的整数表示特定的字符。常用ASCII编码(用兴趣的话可以去查看)。char类型用%c打印。
    char类型占1个字节

  3. float类型:
    即单精度浮点型,float类型用%f打印。

  4. 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大小的变量赋予名称,并分配内存空间。
以上只是创建变量,但并没有给他们提供值,而变量如何复制呢?
可以用下面这几种方法。

  1. 直接复制:a = 5;
  2. 通过scanf()函数赋值(如果不了解scanf()函数,可以在文章末尾进行了解);
  3. 初始化变量的同时赋值: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》