C语言中int/float/double/long/unsighed long型分别占几个字节?

如题所述

在C语言中不同的编译器占位会不同。

1、在16位系统里占的字节

int类型2,long类型4,float类型4,double类型4和char类型1

2、在32位系统里占的字节

nt类型4 ,long类型4 ,float类型4 ,double类型8和char类型1

扩展资料

c语言中int long float double 等类型输出表示

%c输出的是一个单字节字符

%f输出的是单精度实数

%d输出的是十进制整形数

%e输出的是科学记数法的实行数

%s输出是字符串

%g输出双精度实型数

%ld输出的是long类型的数

%lld输出的是long long 类型的数

%u输出的是无符号整形数

printf("%.10lf\n",f_a)输出小数点后10位,否则默认是小数点后6位

double 类型的输出为printlf("%lf",a);

例如:    double d=123456789.12345;

             printf("%.2lf",d);

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-12-09

不同的计算机是不完全一样的。

int 表示2或4字节 

float表示4字节

double表示8字节

unsighed long表示8个字节

源代码如下:

#include<stdio.h>

int main()
{

printf("char=%d\n", sizeof(char));

printf("short=%d\n", sizeof(short int));

printf("int=%d\n", sizeof(int));

printf("float=%d\n", sizeof(float));

printf("double=%d\n", sizeof(double));

printf("long double=%d\n", sizeof(long double));

return 0;

}

扩展资料

1、从 int 转换成 float,数字不会溢出,但是可能被舍入。

2、从 int、float 转换成 double,能够保留精确的数值。因为 double 有更大的范围和更高的精度(有效位数)。

3、从 double 转换成 float,因为 float 范围要小一些,所以值可能溢出成 +∞ 或 -∞。另外由于float精度较小,还可能被舍入。

4、从 float、double 转换成 int,值将会向零舍入。如1.999会被转成1,-1.999会被转成-1。同时值可能会溢出。

本回答被网友采纳
第2个回答  推荐于2016-11-10

各数据类型所占字符数如下:

int                       4字节

float                    4字节

double                8字节

long                    4字节

unsigned long   4字节


可以通过如下的语句进行验证。

printf("%d\n", sizeof(int));    // 计算int型所占字节数
printf("%d\n", sizeof(float));  // 计算float型所占字节数
printf("%d\n", sizeof(double)); // 计算double型所占字节数
printf("%d\n", sizeof(long));   // 计算long型所占字节数
printf("%d\n", sizeof(unsigned long));  // 计算unsigned long型所占字节数

第3个回答  2008-12-23
在turboC++中int占2个字节,float和long占4个字节,char占一个字节. VisualC++中int.long.float占四个字节,char占一个字节. 其它编译器会有所不同.....
第4个回答  推荐于2018-03-14
int 2 字节
long 4 字节
float 4 字节
double 8 字节
char 1字节本回答被提问者和网友采纳
相似回答