c++ 的sizeof问题

无名小辈 2013-06-29 04:34:22
char *s="ab\0234\\\n79"; cout<<strlen(s)<<','<<sizeof(s);

输出为什么是8,4

我觉得应该是8,8才对啊
...全文
87 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bengal1124 2013-06-29
  • 打赏
  • 举报
回复
引用 2 楼 starytx 的回复:
1楼正解,sizeof(s),s是个指针,大小是多少?如果s是个数组名,那么siezof(s)就是数组占用的空间大小
但是我不明白的是 为什么第一个 是8 而且 就算s是数组名 数组名 也是个指针哇 应该还是4吧,要不然 你光一个数组名 我还是不知道类型哇 还是不知道占多少字节
无名小辈 2013-06-29
  • 打赏
  • 举报
回复
明白了,求的是指针的大小 谢谢楼上两位的解答,果然速度啊
starytx 2013-06-29
  • 打赏
  • 举报
回复
1楼正解,sizeof(s),s是个指针,大小是多少?如果s是个数组名,那么siezof(s)就是数组占用的空间大小
橡木疙瘩 2013-06-29
  • 打赏
  • 举报
回复
sizeof(s) 等价于 sizeof(char*) 32位代码char*就是4个字节。 char s[]="ab\0234\\\n79"; cout<<strlen(s)<<','<<sizeof(s); 这样你再试试

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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