int类型究竟占几个字节

本文探讨了C/C++编程中不同数据类型在32位和64位系统上的字节大小,指出编译器如何根据硬件选择合适的数据类型长度,并给出了GCC编译器在两种系统上的实例。强调了指针类型在不同系统上的变化,以及通过代码示例验证了这些概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学编程的都离不开编译器,而学习c/c++的又经常会使用int类型。今天就复习一下相关知识。
尽管同样的类型在不同位数的系统上所代表的位数也可能不同,但是总归是有一些规则约束的。编译器可以根据自身硬件来选择合适的大小,但是需要满足约束:short和int型至少为16位,long型至少为32位,并且short型长度不能超过int型,而int型不能超过long型。这即是说各个类型的变量长度是由编译器来决定的,而当前主流的编译器中一般是32位机器和64位机器中int型都是4个字节(例如,GCC)。下面列举在GCC编译器下32位机器和64位机器各个类型变量所占字节数:

C类型3264
char11
short int22
int44
long long88
char*48
float44
double88

需要说明一下的是指针类型存储的是所指向变量的地址,所以32位机器只需要32bit(4字节),而64位机器需要64bit(8字节)

下面附上我的测试代码和运行结果:
(在win10系统,64位的笔记本电脑,Code::Blocks软件上运行)

#include<stdio.h>

int main()
{
    printf("char = %d\n",sizeof(char));
    printf("short = %d\n",sizeof(short));
    printf("short int = %d\n",sizeof(short int));
    printf("int = %d\n",sizeof(int));
    printf("long long = %d\n",sizeof(long long ));
    printf("float = %d\n",sizeof(float));
    printf("double = %d\n",sizeof(double));
    printf("char* = %d\n",sizeof(char*));
    getchar();
    return 0;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值