1. int a[10];
sizeof(a); //得到值是20
sizeof(a)/sizeof(a[0]); //用来算数组的元素个数
2.int *p;
struct s
{
int a,b;
};
struct s*ps
sizeof(p);//的到的值为2
sizeof(ps);//得到的值是2
我想问一下在1,2中用在()中的是数组名和指针是怎么理解啊,我就想啊,那不是在求一个地址的字节数吗?在按不同机器取的不同的值吗
请大家帮忙解释以下!
谢谢!!!!!!!
所有指针和int占一样的空间,但没有人规定int就是2个字节
by 雨中飞燕 QQ:78803110 QQ讨论群:5305909
[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
1. int a[10];
sizeof(a); //得到值是20
sizeof(a)/sizeof(a[0]); //用来算数组的元素个数
sizeof(a) : a是指向10个整形数祖的指针```结合肥燕的话``那么a这个时候和它指向的10个int占一样的空间``你这里说
得到的值是20````而数组只有10个元素``那么每个int类型的元素占2个字节```
这个表达试意思就是求整个数组占的字节数```
sizeof(a)/sizeof(a[0]): sizeof(a) 你已经明白了``sizeof(a[0]) 里面的a[0]是一个int``就是说它是计算一个数组
元素占的字节数``
结果就是用求得的数组的字节数``除以``每个数组元素所占的字节数```即可以得到数组的元
素个数.
第2个问题``用同样的方法理解```
不知道我上面说的对不对````如果有错``希望各位斑竹指正```特别是肥燕啊```帮我看看```因为你经常一不小心就发现我
说的错误```然后我就受到了美好的打击```