C++基础知识测试

juqiang 2001-11-14 09:56:08
请跟踪下面的程序,看看每个ret都是多少?!

void __fastcall TForm1::Button1Click(TObject *Sender)
{
char str[] = "Helloasdfasfdasdfasdf" ;
char *p = str ;
char str1[100];
int n = 10;
int ret;

ret = sizeof(str);
ret = sizeof(p);
ret = sizeof(n);
ret = sizeof(str1);

Test(str1);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Test(char str[100])
{
int ret;

ret = sizeof(str);
}
...全文
88 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
juqiang 2001-11-14
  • 打赏
  • 举报
回复
普通的windows+pc环境,结果是固定的。
supperapplication 2001-11-14
  • 打赏
  • 举报
回复
不好意思,看错了。
supperapplication 2001-11-14
  • 打赏
  • 举报
回复
24,4,4,100,4
pitchstar 2001-11-14
  • 打赏
  • 举报
回复
sizeof 的值并不是运行时确定的,而是编译时根据数据类型编译器确定的。
leizhengdeng 2001-11-14
  • 打赏
  • 举报
回复
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char str[] = "Helloasdfasfdasdfasdf" ;
char *p = str ;
char str1[100];
int n = 10;
int ret;

ret = sizeof(str);//21+1
ret = sizeof(p);//4
ret = sizeof(n);//4
ret = sizeof(str1);//100

Test(str1);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Test(char str[100])
{
int ret;

ret = sizeof(str);//4
}
南飞雁 2001-11-14
  • 打赏
  • 举报
回复
ret为22,4,4,100,4(在VC6+P4上测试结果)
swqs 2001-11-14
  • 打赏
  • 举报
回复
应该是22,4,4,100,4
zhuang094 2001-11-14
  • 打赏
  • 举报
回复
同意pitchstar(一站):
跟编译器有关.

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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