C/C++中字符串占据空间的计算

youxin2012 2014-08-24 09:36:43
char *str = "abcde";
char *str1 = "\tabcde";
char *str2 = "\tab\0cde";

想请大家一起讨论下,上面3个字符串分别占据多少的内存空间,谢谢
...全文
735 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-08-25
  • 打赏
  • 举报
回复 1
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构…… 对学习编程者的忠告: 眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步Debug版对应汇编一行! 单步Debug版对应汇编千行不如单步Release版对应汇编一行! VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。 对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。 (Turbo C或Borland C用Turbo Debugger调试,Linux或Unix下用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。) 不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实! 有人说一套做一套,你相信他说的还是相信他做的? 其实严格来说这个世界上古往今来所有人都是说一套做一套,不是吗? 不要写连自己也预测不了结果的代码!
pingheng74 2014-08-25
  • 打赏
  • 举报
回复
引用 8 楼 u012421456 的回复:
支持!!!
  • 打赏
  • 举报
回复
6,7,8正解。。。
youxin2012 2014-08-25
  • 打赏
  • 举报
回复
谢谢各位的解释和调试,赵老师有大师的风范,赞一个
我还在迷路 2014-08-25
  • 打赏
  • 举报
回复
引用 9 楼 zhao4zhong1 的回复:
"啊";//占几个字节?通常GBK或Unicode占3个,Utf8占4个。
赵老师的指点是很全面的~
赵4老师 2014-08-25
  • 打赏
  • 举报
回复
"啊";//占几个字节?通常GBK或Unicode占3个,Utf8占4个。
百曉生 2014-08-25
  • 打赏
  • 举报
回复
蒋晟 2014-08-24
  • 打赏
  • 举报
回复
说有答案的都是在坑人.这个问题是标准规定的不定义的行为.每个编译器的作者都可以自行决定如何实现字符串常量的存储.比如把字符串存到一个远程数据库,或者存到只读ROM而不是内存里也是可以的. ISO/IEC 14882:2003 2.13. 2.13. String literals [...]An ordinary string literal has type “array of n const char” and static storage duration (3.7) Whether all string literals are distinct (that is, are stored in nonoverlapping objects) is implementation- defined. The effect of attempting to modify a string literal is undefined. 一个可以进行的编译器优化是为str1分配空间之后将str指向str1的第二个字符,这样两个字符串可以共享空间.
神奕 2014-08-24
  • 打赏
  • 举报
回复
\t 和 \0都是转义字符,加上字符传最后的结束符 所以是6,7, 8咯
勤奋的小游侠 2014-08-24
  • 打赏
  • 举报
回复
占空间一个个数不就行了?这样的问题还需要讨论?你是被面试题坑过了,想问strlen和sizeof两个东西运算后的结果吧。
luotuo44 2014-08-24
  • 打赏
  • 举报
回复
分别是6、7、8 可以写成char str2[] = "\tab\0cde";,然后使用sizeof(str2)进行验证

69,371

社区成员

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

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