| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 855 人关注过本帖
标题:关于sizeof();
只看楼主 加入收藏
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
结帖率:96.67%
收藏
已结贴  问题点数:40 回复次数:11 
关于sizeof();
程序代码:
#include <iostream>
using namespace std;
int main()
{
    char *words[] = {"abcd","abcde","sbuck","sdfsf"};
    size_t words_size = sizeof(words)/sizeof(char*);
    cout<< words_size <<" "<< sizeof(words) <<" " << sizeof(char*);//求解释
    system("pause");
    return 0;
}
在C++PRIMER中看到的,求sizeof(words)和sizeof(char*)的解释。。。。
自己查了查,明白了。
char *words[] 为指针数组;
sizeof(words)求的是指针数组的大小也就是四个字符指针的大小 为4x4=16;
sizeof(char*)求的是字符指针的大小;

[ 本帖最后由 gmac 于 2011-3-3 10:27 编辑 ]
搜索更多相关主题的帖子: sdfsf 
2011-03-02 22:29
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:10 
书上没解释吗?
2011-03-02 23:01
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:10 
sizeof(words); //求指针数组words的长度,就是4
sizeof(char*); //求字符类型指针占用的存储空间

   唯实惟新 至诚致志
2011-03-03 07:44
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
回复 3楼 qq1023569223
好像不是啊!!
2011-03-03 10:03
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
回复 2楼 pangding
没有啊
2011-03-03 10:03
homelove
Rank: 2
来 自:厦门
等 级:论坛游民
帖 子:19
专家分:84
注 册:2010-12-21
收藏
得分:10 
sizeof有两种参数:
1.sizeof(类型名):返回该类型在内存中所分配的字节数,比如sizeof(char)=1,sizeof(int)=4,sizeof(char*)=4(这些结果都是在我的机器测试出来的,不同的机器可能有不同的值)。
2.sizeof(变量):返回该存储变量所需要的内存字节数,比如:
  char c='z';
  cout<<sizeof(c)<<endl; // 打印1
  char s[]="abcd"; 被编译器解释为以0结尾的字符串,占5个字节
  cout<<sizeof(s)<<endl; // 返回数组在内存中的字节数 ,打印5。
所以,楼主代码中sizeof(words),返回的是数组words在内存中的字节数,而sizeof(char*)返回的是字符指针所占的字节数,因为words是char*类型的,所以sizeof(words)/sizeof(char*)则返回的是数组words的元素总数4。
2011-03-03 16:29
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
哦,学习了!

   唯实惟新 至诚致志
2011-03-03 16:31
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
就是 6楼 说的。不过我觉得 C++ Prime 上既然提到了 sizeof 又没讲清楚,好像不太可能吧~
2011-03-03 17:27
huang1228897
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2011-3-3
收藏
得分:10 
总之就是sizeof后括号里的所占字节。
2011-03-03 17:37
huang1228897
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2011-3-3
收藏
得分:0 
把各个类型的搞清楚了就不用纠结sizeoof了
2011-03-03 17:38
快速回复:关于sizeof();
数据加载中...
 
   



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

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