| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 614 人关注过本帖
标题:[求助]sizeof 的细用
只看楼主 加入收藏
yandongdido
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-9-6
收藏
 问题点数:0 回复次数:8 
[求助]sizeof 的细用
在老师讲课时讲到了sizeof的用法,它是一个求字节的运算符,在sizeof()的()中应该是数据类型的,但在老师讲的时候有如下的用法:
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中用在()中的是数组名和指针是怎么理解啊,我就想啊,那不是在求一个地址的字节数吗?在按不同机器取的不同的值吗
请大家帮忙解释以下!
谢谢!!!!!!!
搜索更多相关主题的帖子: sizeof 
2007-09-10 13:00
jinxin3256
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-9-7
收藏
得分:0 
struct s *ps
指向结构体的指针

代替leisure1980广告下: 群号45146331
2007-09-10 13:30
yandongdido
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-9-6
收藏
得分:0 
那是怎么回事啊,你能讲清楚点吗

2007-09-10 15:13
jinxin3256
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-9-7
收藏
得分:0 
我是这样理解的,地址的值是二个字节,所以各种指针都是2个字节长的。。。
不知道对不对,还要请高人来说明。。。

代替leisure1980广告下: 群号45146331
2007-09-10 15:25
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
以下是引用jinxin3256在2007-9-10 15:25:41的发言:
我是这样理解的,地址的值是二个字节,所以各种指针都是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/

2007-09-10 15:28
jinxin3256
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-9-7
收藏
得分:0 
明白了!
如同INT在不同机器里长度不一致的问题是一样的吧,看来理解的差不多。。

代替leisure1980广告下: 群号45146331
2007-09-10 15:31
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 

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个问题``用同样的方法理解```


不知道我上面说的对不对````如果有错``希望各位斑竹指正```特别是肥燕啊```帮我看看```因为你经常一不小心就发现我

说的错误```然后我就受到了美好的打击```








女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-09-10 16:42
yandongdido
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-9-6
收藏
得分:0 
哦谢谢大家拉
但我还觉得有写问题,好象是对在()内的是在C中的一种规定,
对与2中的指针我还是有些搞不太懂啊,好象只针对int 的内存是占二个字节的来说的,好象和地址没什么关系,就是搞不太懂这点拉
请大家提提供些线索把
谢谢大家能回帖!!!!!!

2007-09-10 20:22
jinxin3256
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-9-7
收藏
得分:0 
指针同INT一样占同样的字节数,指针里面就是地址。。

代替leisure1980广告下: 群号45146331
2007-09-10 20:31
快速回复:[求助]sizeof 的细用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039082 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved