700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > c语言sizeof计算int字节数 c语言sizeof获取数据类型长度

c语言sizeof计算int字节数 c语言sizeof获取数据类型长度

时间:2022-09-04 14:17:42

相关推荐

c语言sizeof计算int字节数 c语言sizeof获取数据类型长度

先看代码在看说明和和结果会让人更多的更加纯粹的思考,同时减少多余词汇造成的负担,这里只通过int类型为例试验,其他类型雷同

注意在使用sizeof时与你系统是32位或者64位有关系,同时和你环境中编译器有关

一、代码#include

intmain(void){

inta=1;

intb=10223372036854775807;

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

printf("%d\n",sizeof(a));

printf("%d\n",sizeof(b));

return0;

}

1. 2个整型变量a和b值的长度相差很大,可是通过sizeof打印的结果是相同的,那换成其他类型的变量(char等)是否也是这个现象?大家可以自己测试

2. 通过sizeof处理数据类型和此类型的变量,然后打印所得结果也是相同的,这个又是为什么?问题肯定出在sizeof的语句结构上,大家快暂停去查查sizeof在c语言中的语法

二、代码执行结果

对编译执行结果和结合上述抛出的2个问题思考思考.....

三、问题解释

int i;

sizeof有三种语句形式

1. sizeof(object); //sizeof(对象); 这里的对象可以是变量也可以是表达式 sizeof(i);

2. sizeof(type_name); //sizeof(类型); sizeof(int);

3. sizeof object; //sizeof 对象 ; sizeof i;

说明:实际上sizeof计算一个对象(变量或者表达式结果)的大小也是转换成对应类型的计算。所以统一类型不通变量其sizeof值都是一致的,和变量赋的值大小没关系。

四、延伸

1. 指针#include

intmain(void){

inta=1;

int*p=&a;

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

printf("%d\n",sizeof(a));

printf("%d\n",sizeof(p));

char*pc="abc";

printf("%d\n",sizeof(pc));

int*pi;

printf("%d\n",sizeof(pi));

char**ppc=&pc;

printf("%d\n",sizeof(ppc));

void(*pf)();//指针函数

printf("%d\n",sizeof(pf));

return0;

}

结果:

2.数组

通过sizeof有助于我们更好的深入了解数组#include

intmain(void){

chara1[]={"qwqwqw"};

inta2[3];

printf("%d\n",sizeof(a1));//结果7

printf("%d\n",sizeof(a2));//结果12

return0;

}

.....

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。