不同的编译器,占据的字节也不同,具体如下表所示:
编译器可以根据自身硬件来选择合适的大小,但是需要满足约束:short和int型至少为16位,long型至少为32位,并且short型长度不能超过int型,而int型不能超过long型。这即是说各个类型的变量长度是由编译器来决定的,而当前主流的编译器中一般是32位机器和64位机器中int型都是4个字节。
扩展资料:
在使用不同编译器时候需要注意他们的数据类型差异,int如此其他数据类型也应当注意,因为并没用人规定某种数据类型应该占据多少字节,以及他所表示的数据是有符号还是无符号,即便有人规定这些内容那么编译器是否愿意按规定来实现谁也说不准。
参考资料:
这个要看具体的编译器。
如果是TC20,int占2字节,那int a[10]就是102=20字节;
如果其他编译器,int占4字节,那么int a[10]就是104=40字节;
为了安全你需要用到这个的话可以用10sizeof(int)这样比较安全。
希望能帮到你。
int最大长度是11位。在32位的机器下,int的范围是 - 2 ^ 31 ~2 ^ 31 - 1; 也就是:[-2147483648, 2147483647];在16位的机器下,int的范围为 -2 ^ 15 ~ 2 ^ 15-1。
也就是 :[-32768,32767];整型变量int的范围与计算机的字长有关,int 的长度是一个计算机字长。
int类型允许存储的字节数是4个字节,换算出int UNSIGNED(无符号)类型的能存储的最小值为0,最大值为4294967295(即4B=32b, 最大值即为32个1组成)。
扩展资料:
int型字长问题:
long int型至少应该和int型一样长,而int型至少应该和short int一样长。
1、C/C++规定int字长和机器字长相同;
2、操作系统字长和机器字长未必一致;
3、编译器根据操作系统字长来定义int字长;
在一些没有操作系统的嵌入式计算机系统上,int的长度与处理器字长一致;有操作系统时,操作系统的字长与处理器的字长不一定一致,此时编译器根据操作系统的字长来定义int字长:“比如在64位机器上运行DOS16系统。
那么所有for dos16的C/C++编译器中int都是16位的;在64位机器上运行win32系统,那么所有for win32的C/C++编译器中int都是32位的”。(CPU的“字长”是指其一条指令/一次运算可以处理的数据的最大宽度。
对于整型的数值范围,每个编译器里面都有一个标准头文件:limitsh,这个头文件定义了一些宏,这些宏表示该编译器使用的所有数据类型的范围,编程过程中使用这些宏就行了。
int所占的字节数是根据要运行的系统架构决定的,编译器决定了程序要输出的对应架构,对于不同的架构,int占的字节数不同。
1、16位编译器
char :1个字节
char(即指针变量): 2个字节
short int : 2个字节
int: 2个字节
unsigned int : 2个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
2、32位编译器
char :1个字节
char: 4个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
不同的计算机是不完全一样的,int 2或4字节 float 4字节double 8字节long int 4字节有效位数为字节数乘8-1(减去这个符号位)可以用如下代码查看#include<stdioh>int main(){ printf("char=%d\n", sizeof(char)); printf("short=%d\n", sizeof(short int)); printf("int=%d\n", sizeof(int)); printf("long=%d\n", sizeof(long int)); printf("long long=%d\n", sizeof(long long int)); printf("float=%d\n", sizeof(float)); printf("double=%d\n", sizeof(double)); printf("long double=%d\n", sizeof(long double)); return 0;}
在C/C++语言中,int和long int的所占的字节数与编译器有关。
不过现在常用的编译器多认为int和long int相同,均为4字节,short为2字节,char为1字节。
如果只输入int,它是可以包含以上三种形式。
不同的语言不太一样,例如在Pascal中integer为2字节,byte为1字节,而longint为4字节。
建议您最好参考您的编译器的具体帮助,以得到更准确的信息。
使用前最好sizeof(int) 看看当前编译器如何定义的。
依据程序编译器的不同,int定义的字节数不同。(数据占用内存储器的大小不同)
常用的单片机编译器,如KEIL下,51类单片机的C语言中,int代表2个字节(16位);如果是32位RAM处理器的C语言中,则int代表4个字节(32位)
PIC单片机的PICC中8位系列单片机的C语言里int表示16位。
而不少PC端软件的编译器则会根据操作系统或处理器(如64位XP)把int定义为8字节(64位)
所以在多平台上编程的人员需要在使用时注意。
如需定义16位数,可使用short(短、短整数类型)定义。
扩展资料:
在一般的电脑中,int占用4字节,32比特,
以上就是关于c语言整型数据int占几个字节全部的内容,包括:c语言整型数据int占几个字节、已知 int a[10] ,请问占用内存多少个字节 原因、int最大有多少位等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!