C语言的sizeof()问题
为什么printf("%d",sizeof(int));显示是1printf("%ld",sizeof(int));显示是1printf("%lld",sizeof(in...
为什么 printf("%d" ,sizeof(int));显示是1
printf("%ld" ,sizeof(int)); 显示是1
printf("%lld" ,sizeof(int));显示却是好大好大的一个数
printf("%u" ,sizeof(int));显示的是4
printf("%f" ,sizeof(int));显示的是0.000000
printf("%lf" ,sizeof(int));显示的是0.000000
printf("%llf" ,sizeof(int));显示的是0.000000 展开
printf("%ld" ,sizeof(int)); 显示是1
printf("%lld" ,sizeof(int));显示却是好大好大的一个数
printf("%u" ,sizeof(int));显示的是4
printf("%f" ,sizeof(int));显示的是0.000000
printf("%lf" ,sizeof(int));显示的是0.000000
printf("%llf" ,sizeof(int));显示的是0.000000 展开
3个回答
展开全部
注意sizeof的返回值类型是一个size_t型,而size_t是这样定义的,typedef unsigned int size_t,也就是说它是一个unsigned int型。所以只有第四个是对的,其它都会出错。
追问
格式输出在这里用%d无可厚非吧?
追答
这个我在VS上实验输出是4
int的字节长度是由CPU和操作系统编译器共同决定的,一般情况下,主要是由操作系统决定
一般 16位机器是2个字节,32位机器下面是4个字节
一般32位机寻址空间4G,所以指针占4字节
一般8位的单片机寻址空间是64k,所以指针占2字节
当然编译器也有关系
但是你第四个明显是4了,第一二个没道理是1,软件或者编译器有问题吧(机器应该不会出问题吧)
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
展开全部
sizeof(类型)返回的是该类型的字节数,是一个正整数,且不同软件的类型的字节数也是不一样,
既然是整数,所有含%f(%lf…)会忽略sizeof(),等同于printf("%f");0代表输出错误;
因为lld貌似是c++才有的,c用的是__int64,因此会因类型无法识别而乱码,vc++6.0前面四个都是4,不知道你用的是啥软件
既然是整数,所有含%f(%lf…)会忽略sizeof(),等同于printf("%f");0代表输出错误;
因为lld貌似是c++才有的,c用的是__int64,因此会因类型无法识别而乱码,vc++6.0前面四个都是4,不知道你用的是啥软件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的平台有问题吧?我用VC++6.0经常用printf("%d" ,sizeof(int));这样的句子,结果是4而不是1……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询