- 常量与变量
- 常量与符号常量
常量:常量即常数
常量分为整数常量、实型常量、符号常量
整数常量:15、20等的整数为整数常量
实型常量:1.5、2.1等为实型常量
符号常量:#define Π 3.1415926
整形常量一般有三种表现形式
十进制 八进制 十六进制
定义 123 0123 0x123
输出 %d %o %x
例如:
- 变量名
变量一旦被定义,便会在内存中占有一定的存储单元,变量值是存放在该变量存储单元中的值,会随着变量的重新赋值而改变。变量必须线定义后使用。
例如:int a=10(初始化),int b(未初始化);
变量命名规则
- 要用合法的字符,数字、字母、下划线。首字符不能为数字。例如:10x(错)5xs(错) ope2(对)
- 字母大小写是有区分的student和Student是不同的变量名
- 变量名长度一般为8个字符。
- 给变量起名最好有意义,便于记忆和增加程序的可读性。
- 定义变量要放在main{后面的第一行}不然会报错
- 整形变量及分类
整形变量通常分为四类:一般整形、短整型、长整型、无符号型
标识符 | 数据类型 | 所占空间(字节byte) | 输出类型 |
char | 字符型 | 1 | %c |
short | 短整型 | 2 | %hd |
int | 整形 | 4 | %d |
long | 长整形 | 4/8 | %ld |
long long | 更长整形 | 8 | |
float | 单精度浮点型 | 4 | %f |
double | 双精度浮点型 | 8 | %lf |
long double | 8(vs中) | %lf |
内存
- 字节:计算机常用的存储单位
- 位 :计算机最小的存储单位 1字节(Byte)=8位(bit)
- 一位只能存放一个二进制数(0或1)
求类型大小
int占4个字节,一个字节8位,4*8=32
又因为二进制中第一位表示“正负号”,所以32-1=31
所以int的取值范围是 -2^31到2^31-1
可以将取值范围看作一个圈
sizeof计算内存大小
sizeof(类型); sizeof(变量名);
sizeof(int); sizeof(a);
int数据类型
意义:在内存中占据一定的存储单元,用来存放int类型的数 据。
定义:有初始值、没有初始值
- 有初始值: int a=10;
- 没有初始值 :int b; 没有初始值的变量,系统会给初始值。在输出时,必须给初始值,否则会报错。
赋值:数据赋值给变量、变量赋值给变量、连续赋值
- 数据赋值给变量 int a=10;
- 变量赋值给变量 int x=20; int y=x;
- 连续赋值 n=m=30;
- 取地址符&
- 取地址运算符&
- 取地址表达式 &a
- 输出地址(16进制)
printf("%p",&a);以地址的形式输出
- scanf变量输入
- scanf 使用格式(scanf函数要搭配取地址符使用&)
scanf("输入变量的类型",输入变量名);
int a=0; scanf("%d",&a);
long a=0; scanf("%ld",&a);
输入结束按回车健
- 在使用scanf函数时,vs2022会报错。
是因为vs2022认为scanf函数不安全。
解决办法两个
- 添加这行代码,到第一行。
#define _CRT_SECURE_NO_WARNINGS 1
- 使用vs自带的scanf_s(不建议这样使用,会导致代码的可移植性差)
每一个警告都有自己的错误代码
- 使用scanf连续输入多个变量
- 使用方式 scanf("%d %d",&a,&b);
- 注意 定义时用什么隔开,输入时用什么隔开
- float、double
- 定义:
float a=3.1415;
double b=3.1415926;
- 输出:
printf();标准输出宽度为6位
printf("%f",a);
printf(" %10 . 2lf " , b );
10前面输出位 2后面输出位
想要在标准输出位上多输出,要加上数字。
多出的数位用0补齐
- 有效数位(标准规定、根据编译器不同,有效位也会不同)
float 有效数位是7位
double 有小数位是16位
有效数位从第一个数开始算,最后一位会四舍五入。超出就会乱码。
- 浮点后缀
float =3.12345f;
其中f为浮点后缀
- 使用scanf的注意事项
使用scanf注意他的输入类型
例:scanf("%lf",&a); double类型
sacnf("%f",&a); float类型