3个回答
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
一般来讲,不同的机器,运行不同的对象是不一样的。
方法一:
因此,建议你在你运行的计算机上面输入如下代码:
#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
展开全部
a是数组的首地址,sizeof(a)是计算数组占用内存大小是3*sizeof(int)=12个字节,而a[0]是其中一个元素的大小就是sizeof(int)=4,所以b=12/4=3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
b=3 因为
sizeof(a)算的是数组的内存 即3*4=12 而
sizeof(a[0])是1占内存 为4
sizeof(a)算的是数组的内存 即3*4=12 而
sizeof(a[0])是1占内存 为4
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询