学编程的都离不开编译器,而学习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;
}

在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐