C++整数类型 int
简单61C++的整数好朋友——int
你有没有数过班级里有多少个同学?或者计算过零花钱的金额?这些数都是整数,比如 35 个人、50 元钱。在C++里面,我们用 int 来保存整数。int 就像一个专门存放整数的“小格子”,可以存任何整数(正数、负数、零),但不能存小数或者文字。
什么是 int?
int 是英文 “integer”(整数)的缩写。声明一个 int 变量,就像在程序中划出一块小地方,专门用来放一个整数。比如:
int score = 100; // 声明一个叫score的变量,初始值是100
int age; // 只声明,没给值(这个格子里暂时是空的)
age = 10; // 给age赋值10
你可以给变量取任何名字(只要符合命名规则),比如 total_money、num_of_books,但名字最好能让人一眼看懂它用来干什么。
int 能装多大的数?
电脑里的 int 就像一个固定大小的箱子,不能无限制地装大数。在大多数电脑上,int 能装的范围是 -2147483648 到 2147483647(大约是 -21亿 到 21亿)。如果数字超出这个范围,比如要存 30亿,就会发生“溢出”,结果会变得很奇怪(比如变成负数)。所以如果你的数可能很大,比如统计全国人口,就要用更大的类型 long long(它能存到很大很大的数)。
用 int 做计算
int 类型的变量可以进行加减乘除和取余等运算。注意:两个整数相除,结果只保留整数部分(舍去小数)。比如 7/2 的结果是 3,不是 3.5。
int a = 5;
int b = 2;
int c = a + b; // c = 7
int d = a - b; // d = 3
int e = a * b; // e = 10
int f = a / b; // f = 2 (注意:不是2.5)
int g = a % b; // g = 1 (%是取余数,5除以2余1)
生活中的例子:如果全班有 25 个同学,每 4 人一组做实验,可以分成几组?还剩几个人?
int total_students = 25; // 总人数
int group_size = 4; // 每组人数
int groups = total_students / group_size; // 组数 = 25/4 = 6(取整)
int remainder = total_students % group_size; // 剩余人数 = 25%4 = 1
cout << "可以分成 " << groups << " 组,还剩 " << remainder << " 人。" << endl;
输出:可以分成 6 组,还剩 1 人。
新手容易犯的常见错误
错误1:忘记给变量赋初值
int x;
cout << x; // 错误!x没有初始值,输出结果不确定(可能是任意数)
解决方法:声明变量时就初始化,或者在使用前赋值。
错误2:整数除法当小数用
int a = 10;
int b = 3;
double c = a / b; // 错误!a/b 先算成3(整数除法),再转成double,结果是3.0,不是3.333...
正确做法:把其中一个数写成 double 类型,或者用强制转换:
double c = (double)a / b; // 先转成double,再除,结果≈3.3333
错误3:超出 int 范围
int big = 2147483647; // 这是int能装的最大正数
big = big + 1; // 溢出!结果变成 -2147483648 (像绕回一样)
解决方法:如果数可能很大,改用 long long。
错误4:用 int 存小数或文字
int price = 3.5; // 错误!编译器可能会警告,3.5被截断成3
int name = "小明"; // 错误!不能存文字
完整示例:计算考试成绩总分和平均分
假设小明有三次考试成绩:语文85,数学92,英语78。我们用 int 算总分,并估算平均分(平均分不一定是整数,但我们可以先算整数部分)。
#include <iostream>
using namespace std;
int main() {
int chinese = 85; // 语文成绩
int math = 92; // 数学成绩
int english = 78; // 英语成绩
int total = chinese + math + english; // 总分
int average = total / 3; // 平均分(整数除法,只保留整数部分)
cout << "总分:" << total << "分" << endl;
cout << "整数平均分:" << average << "分" << endl;
// 如果想得到精确平均分,需要用double类型
double exact_avg = (double)total / 3;
cout << "精确平均分:" << exact_avg << "分" << endl;
return 0;
}
运行结果:
总分:255分
整数平均分:85分
精确平均分:85分
注意:这里 255/3 正好是85,所以整数除法没损失。如果总分是254,整数平均分会得到84,而精确平均分是84.6667。
相关指引
- 如果需要存储更大的整数,比如几十亿以上,可以学习
long long类型。 - 如果需要小数,比如价格、身高、平均分,可以学习
float或double类型。 - 如果需要存储单个字符(比如 'A'),可以用
char类型。 - 如果需要存储“是/否”这样的真假值,可以用
bool类型。
int 是C++中最常用的整数类型,记住它的用法,你就能处理很多带数字的问题啦!
例题精讲
以下哪个选项是合法的C++ int变量声明?
已知 int a = 10, b = 3; 则表达式 a / b 的值是?
int类型的变量可以用来存储像3.14这样的小数。
在C++中,int变量可以赋值为负数,例如 int a = -10; 是正确的。
完成以下C++程序,声明一个整型变量 score 并初始化为 95,然后输出该变量的值。
#include <iostream>
using namespace std;
int main() {
___;
cout << score;
return 0;
}