前言:本文只涉及一些基本数据类型和一些库函数知识点,并不完全。(该系列为学习经历,不附带太多属性)
前文
我们之前提到printf的基本使用方法,那如果我们想要打印一些数字怎么办呢?这个时候就涉及到数据类型。在c语言中,有字符数据类型(char),整型(int),浮点数据类型(float,double)等。
目录
一、常量和变量
常量
在C语言中,数据有两种表现形式:常量和变量。我们通常称那些不能被改变的量为常量,例如1000,52等,常量通常分为以下几类:
1.整型常量:
1000,52这些就是整型常量
2.实型常量:
(1).小数形式:如1000.1,0.0这些
(2).指数形式:我们用字母e或者E来表示以10为底的指数,例如:12e3就是等于12*10^3
但要注意在e或者E前必须要有数字,以及后面必须要为整数,不能写成12e3.2。
3.字符常量
(1).普通字符:我们用单引号括起来的字符。如'A','B'。一般来说用ASCII码表来存储这些字符,例如:'a'的ASCII码为97,'b'的ASCII码为98。
(2).转义字符,除了普通字符,c语言还允许使用一些特殊字符,以达到不同作用,以\开头的字符序列就是转义字符。
4.字符串常量:
用双引号括起来的多个字符称为字符串常量。例如:"sober"
5.符号常量
用#define 指定一个符号名称代表一个常量
例如:
#define PI 3.14
#define a 6
我们将其放在最开头,这样能让多次使用这些符号的时候,统一一个数值,便于计算,也便于修改。
扩展:
字符串和字符的区别
字符串是由一对双引号括起的字符序列。例如:"sober","jiayou"。字符只能是单个字符,字符串则可以含一个或多个字符。
变量
一个变量所代表的就是一个有名字的,有特定属性的存储单元,我们定义变量的时候就是我们要向内存去申请空间来存放数据。变量必须先定义,后使用,在定义的时候要指定该变量的名字和类型。
二、数据类型
整型
整型数据类型顾名思义也就是整数数据,但在这里面我们又分常量和变量,常量就是那些不变化的,像数字1,20这些。在printf中对应的就用%d来输出。
1.整型常量的输出
例:
#include<stdio.h>
int main()
{
printf("%d", 20);
}
这个时候就能看到20打印在屏幕上了。
2.整型变量的定义和输出
如果我想要将一个整型数据存放在一个变量中,那么我们就要按照以下格式
#include<stdio.h>
int main()
{
int a = 20;
printf("%d",a);
}
a这个时候就是用户标识符,int就是关键字,用来告诉计算机这是个整型数据类型,=左边存放变量,等号的右边存放数据。输出的话就要用%d,并在双引号后面加上逗号输出你定义的标识符。(用户标识符和关键字知识放在文章最底)运行后就可以在屏幕上看到20了。
3.int与short,long,long long的区别
short 其实就是short int,同理 long longlong,也一样,在编译系统中,系统会给int类型4字节,short,2字节long 4字节(64位中为8字节),long long 8字节。不同字节意味着不同类型所能取值的范围不同(在文章结尾有总结),如果一个数字过于大,则有可能出现数据溢出的情况,这时候就需要调整数据类型了。
浮点型数据类型
浮点型数据是用来表示具有小数点的实数的。浮点型数据类型又分单精度和双精度,单精度用float说明,双精度用double说明。
1.表示单双精度变量
#include<stdio.h>
int main()
{
float a = 3.1;
double b = 6.66;
printf("%f %f", a, b);
}
运行后
2.float与double的区别
float与double的区别在于系统分配的字节数不一样,float分配的字节数为4个,而double的字节数为8,前者的有效数字为6,而后者的有效数字为15,该两者范围也不一样(文章结尾有总结)。
字符数据类型
当你想表达字符a字符b的时候,就要用char来说明。我们用%c在printf中输出单字符,%s在printf中输出字符串。
1.表示单字符
在c语言中用单引号表示单字符
例如 'A', 'B','C'这些
#include<stdio.h>
int main()
{
printf("%c", "S");
return 0;
}
2.表示字符串
#include<stdio.h>
int main()
{
printf("%s", "abc");
return 0;
}
3.表示字符变量
我们用类型说明符char来定义字符变量。
例如:
#include<stdio.h>
int main()
{
char a = 'S';
printf("%d %c", a, a);
return 0;
}
定义a为字符型变量,并使初值为字符'S'。'S'的ASCII码是83,系统把整数83赋值给变量c。
布尔类型
C 语⾔原来并没有为布尔值单独设置⼀个类型,⽽是使⽤整数 0 表⽰假,⾮零值表⽰真。 在 C99 中也引⼊了 布尔类型 ,是专⻔表⽰真假的。在C语言中用0表示假,而非0表示真。
1.布尔类型的定义
首先要引用布尔类型就得添加头文件,使用stdbool.h
#include <stdbool.h>
int main()
{
_Bool flag = true;
return 0;
}
在这段代码中flag 被认为是真,也就是可以用来执行某些条件表达式。
标识符
定义:用来描述变量名、函数名等一些自定义的符号
类别:关键字(int,char这些),用户标识符,预定义标识符(像printf,scanf这些)
在c语言中命名标识符有一些规则
1.关键字不能是标识符(就比如int关键字不能作为标识符)。
2.标识符必须用字母或者下划线开头,不能用数字或者符号开头,其它位置可以使用字母,下划线和数字。
例:
#include<stdio.h>
int main()
{
int _a;
int a_b;
short a12;
char ai;
}
3.ANSI标准规定,标识符可以任意长度,但外部名必须至少能由前8个字符唯一地区别。这是因为某些编译程序仅能识别前8个字符。
4.标识符区分大小写(例如int和Int是不一样的)。、
在数据类型中输出总结(不同类型对应不同格式字符)
(格式符后续单独整理)
int 对应 %d
char 单字符对应%c,字符串输出%s
%f对应float double这些
若是想要输出小数点后几位那么就按%.nf这种格式
若是向右对齐则%m.nf这种格式,向左对齐则需要在m前添加一个负号
一些扩展:
在printf输出中我们会看到一些格式"%7d","%-7d","%0.2f",
#include<stdio.h>
int main()
{
int a = 56;
int b = 9;
float c = 2.3;
printf("0000000\n%7d\n%-7d\n%0.2f\n", a, b, c);
}
小数点后面的2就相当于在屏幕上输出小数点后两位,小数点前面的整数就是向右对齐几位数字,添加一个负号就是向左对齐几位数字。
注:
转义字符表来自