目录
1.关于数据
1.数据的表现形式
1.1常量
1.2变量
2.数据类型
2.1整型
2.2字符型
2.3浮点型
2.4确定常量类型
3.格式化输入输出函数
3.1工具箱与占位符
3.2用printf函数输出数据
3.3用scanf函数输入数据
3.4字符型数据的输入输出
1.关于数据
1.数据的表现形式
1.1常量
1.1常量
在程序运行过程中,它的值不能改变,也常用来说明保存数据的类型。如1,2,3,字母'a','b'都是常量。
1.整型常量
是整数。也包括八进制,十六进制的整数,如056,0x8A。
2.实型常量
# 1.十进制小数形式
c语言中只有十进制有小数形式。
# 2.指数形式
1.23e5 e前必须有数字,可以是小数,0也可以;e后不能有小数,可以是负数。
3.字符常量
# 1.普通字符常量:用单引号括起来的一个字符。
# 2.转义字符:以字符/开头的字符序列,意思是将'/'后面的字符转换成另外的含义。如'n'代表换行,'t'为水平制表符等。
补充:八进制转义字符的一般形式是'ddd',d是0-9的数字。
十六进制转义字符一般形式是'xhh',h是0-9或A-F内的一个。
4.字符串常量
用双引号把若干字符括起来,注意是双引号,而字符串不包括双引号。
注意:单引号内只能包含一个字符,表示字符常量,双引号内可以包含一串字符,表示字符串常量。""中有无字符,有多个字符,都合法。
5.地址常量
每个常量,变量,数组的地址在运行期间是不能改变的,称为地址常量。如int a=1;a这个变量在内存中的位置是不变的。
6.符号常量
相当于宏定义中的无参宏定义。如用#define指令指定用一个符号代表一个常量。
如#define S 1234
注意末尾没有分号,也就是用S代替1234.这样当程序中多处用到了同一个常量时,可以“一改全改”。还有不要把符号常量当做变量,要把它与有参宏定义区分开。
1.2变量
是程序运行过程中可以改变的量,代表一个有名字,有特定属性的存储单元。可用来存储数据即变量值。
注意:要先定义后使用,这样程序才会分配内存。如int a=1;
命名规则是见名知意,如定义人数用number;还要符合标识符命名规则,即只能由字母,数字,下划线_组成,并且只能由字母和下划线开头。
同一个作用域(在main函数中,对象的作用域是它所在的最近的一对花括号内)范围内定义的标识符不能重名,不能是关键字。
2.数据类型
在计算机中,数据存放在存储单元中,存储单元由有限的字节构成,不能存放无限小数。不同的数据类型会分配不同的存储单元长度(占多少字节)和存储形式。
1字节=8位(00000000)
2.1整型
(加上unsigned是无符号的意思)
int 普通整型2,4字节
unsigned int 无符号整型 2,4字节
short 短整型 2字节
long 长整型 4字节
longlong 双长整型 8字节 可以用来保存电话号码,因为取值范围在11位以上。
求字节长度的运算符:sizeof(数据类型);
2.2字符型
char 字符型 1字节
signed char 有符号的字符型:取值范围-128~127,因为-0的原码和补码与+0不同,把它视为-128。符号位保存在最高位。最高位是1表示负号,是0表示正号。
unsigned char 无符号字符型:最小00000000,最大11111111,即255.
可以存储的范围:ASCLL表
所有小写字母对应的数都比大写字母大32
有些字符不能显示,比如 空字符' ',警告字符'a',回车字符'r'等。
2.3浮点型
在c语言中,实数以指数的形式存放在存储单元里。一个实数表示为指数不止一种形式,小数点位置可以浮动,所以叫浮点型。
程序用指数形式输出一个实数时,会以规范化形式输出,即小数点前的数字为0和小数点后的数字不为0。如0.3243e1。
float 单精度 4字节 (用此,在c语言中至少精确到小数点后六位。)
double 双精度 8字节 (c语言中至少精确到小数点后13位,但显示出8位。只要数据有指数形式,不管有无小数点,就是实型常量,会被归到double类型,除非后面加f,如foat score=34.2f;
34.2本来在计算机中默认为double型数据。另外f不能加在整数部分,不合法)
long double 长双精度 8,16字节(对浮点型常量,编译器是默认按双精度进行处理的,如果想按单精度,在常量后面加f,如果想按长双精度,在常量后面加L或l)
2.4确定常量类型
(1)符号常量
由单引号括起来的单个字符或转义字符都是。
(2)整型常量
不带小数点的数值。但要注意有效范围,选择存放的下的数据类型。
(3)浮点型常量
任何以小数形式或指数形式出现的实数。
(4)注意如果不匹配的话会出现数据溢出。即定义的变量无法保存全部数据,会丢失小数部分等。
3.格式化输入输出函数
3.1工具箱与占位符
1.用输入输出函数时,要在程序开头用预处理指令#include打开工具箱。
如
2.常用占位符
%d 一个整型变量的占位符
%c 一个字符型变量的占位符
%f 一个单精度浮点型变量的占位符,默认输出小数点后六位。
%lf 一个双精度浮点型变量的占位符,默认也输出小数点后六位。
%o 八进制
%x 十六进制
%s 字符串
%e 科学计数法
%i 自适应整数类型
%g 自适应浮点类型
3.2用printf函数输出数据
函数一般格式:
printf(格式控制,输出列表);
#includeint main() { char ed ='k'; printf("%c",ed);//字符型 float e =2.34f; printf("%f",e);//单精度浮点型 double d =3.23; printf("%lf",d);//双精度浮点型 }
3.3用scanf函数输入数据
函数一般格式:
scanf(格式控制,地址列表);
#includeint main() { int a; scanf("a=%d", &a); return 0; }
要想输入数据,就要先定义变量,在内存里占个位置。用取地址符找到它在内存里的地址。
#include//将奇数位置的字母组成新的单词 int main() { char a1,a2,a3; scanf("%c%*c%c%*c%c", &a1,&a2,&a3); printf("%c%c%c", a1, a2, a3);//输入books,输出bos return 0; }
3.4字符型数据的输入输出
#include
int main()
{
char a1 = getchar();//从键盘输入一个字符存入字符变量a1中。
printf("%c",a1);//作用同下。
putchar(a1);//输出字符变量a1的值,下同。
putchar('a1');
putchar('e');//单纯为了输出一个字符e
return 0;
}
在vs中用system("pause");函数可以起到很好的暂停效果,即需要从键盘再输入任意一个字符才能继续执行。
由于scanf,getchar等输入函数没有从键盘接收到数据就不会继续执行,所以有时可以起到类似的暂停效果。



