int a[3]={1,2,3}; int b=sizeof(a)/sizeof(a[0]);计算b

求具体求解步骤... 求具体求解步骤 展开
 我来答
匿名用户
2014-06-24
展开全部
sizeof 表示返回一个对象或者类型所占的内存字节数。
一般来讲,不同的机器,运行不同的对象是不一样的。
方法一:
因此,建议你在你运行的计算机上面输入如下代码:
#include <stdio.h>
int main(void)
{
int a[3] = {1,2,3};
int b = sizeof(a)/sizeof(a[0]);
printf("sizeof(a):%d\n",sizeof(a));
printf("sizeof(a[0]):%d\n",sizeof(a[0]));
printf("b:%d\n",b);
}
方法二:
目前几乎所有的机器都是32位,很少16位的,所以一般考试都是基于32位的window和linux的。
int a[3]={1,2,3};// 整个数组占用的内存单元,以byte计。对于32位系统,int表示4个字节,一共三个元素,因此sizeof(a)=12,sizeof(a[0])=4;
int b = sizeof(a)/sizeof(a[0]); // 一维数组元素总个数
因此,b等于数组a元素的总个数,即3。

拓展:
对于char类型的要注意末尾多了一个NULL字符。
例如
char a1[] = "abc";
int a2[3];
sizeof( a1 ); // 结果为4,字符 末尾还存在一个NULL终止符
sizeof( a2 ); // 结果为3*4=12(依赖于int)
参考链接:http://blog.csdn.net/sword_8367/article/details/4868283
雨之风清
2018-03-14 · 超过17用户采纳过TA的回答
知道答主
回答量:58
采纳率:100%
帮助的人:34.6万
展开全部
a是数组的首地址,sizeof(a)是计算数组占用内存大小是3*sizeof(int)=12个字节,而a[0]是其中一个元素的大小就是sizeof(int)=4,所以b=12/4=3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
l386568639
2014-06-24 · TA获得超过339个赞
知道小有建树答主
回答量:388
采纳率:90%
帮助的人:116万
展开全部
b=3 因为
sizeof(a)算的是数组的内存 即3*4=12 而
sizeof(a[0])是1占内存 为4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式