上一章我们认识了C++的输出方法,今天我们继续学习C++的变量
目录
理解变量
可以字面理解为是一个会变的量,可以理解为有一栋房子,房子叫a,里面住着数字1,也就是a的值,有一天住着的数字变成了2,也就是a的值从1变成了2。
还是满形象的吧
变量类型
我们常用的变量有一下几种:
类型 作用 存储大小 占用大小 int 存储整数
-2^31~2^31-1 4个字节 char 存储字符 0~128 1个字节 bool 存储false和turn 0~1 1个字节 long long 可以存储比int更多整数 -2^63~2^63-1 8个字节 double 存储整数浮点数(也就是小数) -1.7x10-308 ~ 1.7x10308 8个字节
使用变量
变量的操作
1.定义变量
格式如下:
变量类型 变量名称;
比如定义一个int类型的变量a:
int a;
说明:
- 变量名称不能是C++的关键字,比如变量类型就是C++的关键字
- 变量名称不能是数字开头
- 变量名称不能相同
温馨建议:尽量把变量定义在我们写主程序的外面
如下:
#include <bits/stdc++.h> using namespace std; int a; int main() { return 0; }
这样定义a的初始值就是0,但在主程序的里面定义初始值就是个随机数,在后面写一些程序的时候会很不方便。
作者就因为不这样写错了许多题目2.赋值操作
赋值操作就是给变量一个值 格式如下:
变量名称=要赋的值;
比如给一个int类型的变量a赋值为2:
a=2;
也可以在定义的时候赋值:
int a=2;
3.运算操作
这个更我们小学学的加减乘除是一个道理,先乘除后加减
a=a+1; a=a-1; a=a*1; a=a/1; a=((a+1)*(a+2))/3
C++用的括号全都是小括号
除了四种基本运算符,C++还有一个取余数的运算符'%'
int a=1; a=a%2;
那现在a的值依然是1,因为1/2的余数还是1
除了这些普通的写法,还有一些其他写法
a+=10; a-=10-10; a*=5*8; a/=5%2; a%=6/3; a--; --a; a++; ++a;
- a+=10其实就是a=a+10
- a-=10-10其实就是a=a-(10-10)
- a*=5*8其实就是a=a*(5*8)
- a/=5%2其实就是a=a/(5%2)
- a%=6/3其实就是a=a%(6/3)
- a--其实就是a=a-1;
- --a其实也是a=a-1
- a++其实就是a=a+1
- ++a其实也是a=a+1
a--和--a的区别:a--是先用后减,--a是先减后用,a++和++a同理
举个例子:
int a=5; int b=a--; a=5; int c=--a;
b的值应该是5,c的值应该是4
变量的读入及输出
1.cin读入
cin是C++中一种方便快捷的读入方法,方法如下:
int a,b; cin>>a>>b;
但如果题目要求我们还要读入一些乱七八杂的东西在中间,就需要用到scanf
2.scanf读入
在此之前我们需要了解一个叫占位符的东西,占位符用于读入和输出。
可以理解为空出一个房子,让数字搬进去
方法如下:
int a; char b; scanf("<%d,%c>",&a,&c);
细心的读者肯定发现了a和c的前面的有一个'&',这是取址运算符,现在大家不必深入理解,在后面我会讲解,现在大家只需要知道,scanf在读入变量时,读入的变量前要加上'&'就行了
上面的代码中%d用与读入int,%c用于读入char,其他占位符在结尾给大家看
题为话:本人喜欢用scanf,一是方便,二是比cin快
3.cout输出
方法如下:
int a,b; cout << a+b << endl;
看起来十分简便,但如果题目要求用要求格式输出,代码就会显得很长,这个时候就要用printf了
4.printf输出
printf输出变量一样需要在占位符的帮助
方法如下:
int a,b,c; printf("%d+%d=%d",a,b,c);
这样就可以连同符号一起输出了
题目推荐
A+B Problemhttps://www.luogu.com.cn/problem/P1001 Hello,Phantom!https://hydro.ac/d/Phantom/p/PH0001 重要的事情说三遍!重要的事情说三遍!重要的事情说三遍!https://hydro.ac/d/Phantom/p/PH0002 A+B Problemhttps://www.luogu.com.cn/problem/P1001 A * B Problemhttps://hydro.ac/d/Phantom/p/S0001 求长方形的周长http://noi.ac/problem/1112 求长方形的面积http://noi.ac/problem/1115
结尾
先附上表格:
类型 作用 %d 用于十进制整数(也可以用作bool) %lf 用于浮点数
%c 用于字符 %o 用于八进制整数
%x,%X 用于十六进制整数 %lld 用于十进制整数(long long)
后面如果遇到了其他占位符的,我会另外说明
如果可以支持一下作者的OJ:PHOJ