int在c语言中代表什么(通俗易懂,适合新手小白)
在 C 语言里,int 是英文 integer(整数)的缩写,用来告诉编译器:“我要存一个整数”。它的大小与范围由编译器和平台共同决定,而不是语言本身。
对初学者而言,先记住两点:① int 通常占 4 字节;② 它能表示的负数与正数几乎各占一半。
代码:看看 int 占多少字节
1 #include
2
3 int main(void) {
4 printf("int 占用 %zu 字节\n", sizeof(int)); // 输出字节数
5 return 0;
6 }
运行结果(64 位 Linux,GCC):
int 占用 4 字节
int 的取值范围与溢出“陷阱”
4 字节 int 按二进制补码存储,范围 −2 147 483 648 到 2 147 483 647。一旦超出,最高位符号位被翻转,数值突然跳变,称为“溢出”。
初学者常因忽视此点导致死循环或计算错误。
代码:演示溢出
1 #include
2 #include
3
4 int main(void) {
5 int a = INT_MAX; // 2147483647
6 printf("a = %d\n", a);
7 a = a + 1; // 溢出,变成 -2147483648
8 printf("a + 1 = %d\n", a);
9 return 0;
10 }
运行结果:
a = 2147483647
a + 1 = -2147483648
int 的修饰词:short、long、unsigned
在 int 前可加限定词:short 缩小范围、节约内存;long 扩大范围;unsigned 去掉负数部分,容量翻倍。
选用原则:先估数值范围,再选最小够用类型,避免浪费。
代码:对比大小与范围
1 #include
2
3 int main(void) {
4 printf("short:%zuB %d~%d\n", sizeof(short), SHRT_MIN, SHRT_MAX);
5 printf("int: %zuB %d~%d\n", sizeof(int), INT_MIN, INT_MAX);
6 printf("long: %zuB %ld~%ld\n", sizeof(long), LONG_MIN, LONG_MAX);
7 printf("unsigned int: %zuB 0~%u\n", sizeof(unsigned), UINT_MAX);
8 return 0;
9 }
运行结果(64 位):
short:2B -32768~32767
int: 4B -2147483648~2147483647
long: 8B -9223372036854775808~9223372036854775807
unsigned int: 4B 0~4294967295
int 的格式化输入输出
用 printf 输出时,%d 对应基本 int;%u 对应 unsigned int;%hd、%ld 分别对应 short 和 long。写错格式符会打印乱码,是初学者常见 bug。
代码:正确打印各类型
1 #include
2
3 int main(void) {
4 int a = -5;
5 unsigned u = 5;
6 short s = 100;
7 long l = 100000L;
8
9 printf("int=%d, unsigned=%u, short=%hd, long=%ld\n", a, u, s, l);
10 return 0;
11 }
运行结果:
int=-5, unsigned=5, short=100, long=100000
int 与字符、浮点的“跨界”互动
int 与 char 可互相赋值,实质是 ASCII 码数值;与 float 混编时,C 会隐式类型转换,但可能丢精度。若需精确计算,应先强制类型转换再运算。
代码:跨界示例
1 #include
2
3 int main(void) {
4 char c = 'A'; // ASCII 65
5 int i = c; // 自动提升
6 float f = 3.6f;
7 int r = (int)f; // 截断小数
8
9 printf("char→int: %c=%d\n", c, i);
10 printf("float→int: %.1f→%d\n", f, r);
11 return 0;
12 }
运行结果:
char→int: A=65
float→int: 3.6→3
最后,给大家推荐一个 1.7W 字的【C语言学习小册】,直接免费下载领取,能带你踹开编程的大门,让你对 C 语言本身,以及 C 语言的周边都有一个整体上的认知,阅读完后,能帮你解开很多疑问,比如:
C语言到底是什么玩意?
C语言到底能干什么?
学编程难吗?多久能学会?
C语言和C++到底有什么关系?
2025年了,程序员有必要学习C语言吗?
为什么很多人学了 C 语言感觉它屁用没有?
学习C语言,为什么一定要学习内存?
主流的C语言编译器有哪些,它们各自有什么优缺点?
系统学习 C 语言,请猛击《C语言入门教程(非常详细,尤其适合新手小白)》。