C 中关于 sizeof 的问题

huazaijiajia 2003-11-22 08:04:07
以下为Windows NT下的32位C++程序:
char str[] = “Hello” ;
char *p = str ;
int n = 10;
请计算
sizeof (str ) = 6
sizeof ( p ) = 4
sizeof ( n ) = 4
void Func ( char str[100])
{
请计算
sizeof( str ) = 4
}
void *p = malloc( 100 )
请计算
sizeof ( p ) = 4

这是《高质量C++编程》后面的题目,我有些不理解,一般来说,near类指针字节数为2,far、huge类指针字节数为4。还有整形应该是 2。而且用 Turboc2.0编程
sizeof ( p ) = 2
sizeof ( n ) = 2
为何答案是 4 ?是答案错了吗?或者是32位的缘故?大家帮忙解释一下

...全文
52 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ilovedonny 2003-11-25
  • 打赏
  • 举报
回复
回答的都这么全面透彻了,也该结贴了呵
fierygnu 2003-11-25
  • 打赏
  • 举报
回复
near和far是古老的intel CPU落下的后遗症。标准C里只有一个地址空间,指针也就没有near/far/huge等的区别。
hongfeeling 2003-11-25
  • 打赏
  • 举报
回复
大家都回答完了。
answerear 2003-11-23
  • 打赏
  • 举报
回复
楼上的分析的很正确.
zhouqingyuan 2003-11-23
  • 打赏
  • 举报
回复
char str[] = “Hello” ;
char *p = str ;
int n = 10;
请计算
sizeof (str ) = 6 //还有一个‘\0'
sizeof ( p ) = 4 //32位指针
sizeof ( n ) = 4 //32位中int为4位
void Func ( char str[100])
{
请计算
sizeof( str ) = 4 //函数中数组参数传递的是指针,所以也为4
}
void *p = malloc( 100 )
请计算
sizeof ( p ) = 4 //指针为4位
michaelli 2003-11-23
  • 打赏
  • 举报
回复
32位操作系统,指针为四个字节
int 为八个字节
等等…………
北极猩猩 2003-11-23
  • 打赏
  • 举报
回复
32为系统中指针是32位,也就是4个字节
chengsion 2003-11-23
  • 打赏
  • 举报
回复
同意完美废人的
sunsys 2003-11-23
  • 打赏
  • 举报
回复
32位操作系统,指针为四个字节
int 为四个字节
char 为1个字节
字符串 有 ‘\0'结束符
atlcat 2003-11-22
  • 打赏
  • 举报
回复
Wolf0403说得对
Wolf0403 2003-11-22
  • 打赏
  • 举报
回复
32 bit 系统已经没有 near/far/huge 指针了,统统 4 bit

char str[] = “Hello” ;
栈数组大小可以通过 sizeof 取得

void Func ( char str[100])
{
sizeof( str ) = 4 // 传递给函数后退化成指针
}
GR 2003-11-22
  • 打赏
  • 举报
回复
near类指针字节数为2,far、huge类指针字节数为4。还有整形应该是 2。

//这些在windows下编成的话你可以不去记它了。都一样的。占用四字节空间.不过名字有些还是会有near lp等等的。只是从16系统过度过来的一些词语。都是一样的
c4313848 2003-11-22
  • 打赏
  • 举报
回复
32操作系统,指针为四个字节
huazaijiajia 2003-11-22
  • 打赏
  • 举报
回复
其他的也帮我解释一下,摆脱了各位
gladiatorcn 2003-11-22
  • 打赏
  • 举报
回复
tc为16位的,当然不同!
GR 2003-11-22
  • 打赏
  • 举报
回复
变量的地址占用四字节。32操作系统

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧