在C语言中,没有字符串类型,但是可以通过字符数组来模拟字符串。

字符串可以在栈上,堆上,静态区和常量区进行分配。

char buf[50]  = "abc";

char buf[] = "abc";

对应于第一种,编译器会自动进行优化,也就是buf的前三个元素分别是“a”,“b”,“c”,从buf[3]到buf[49]都是“\0”

对于第二种,编译器会自动推断出元素的长度,因此第二种仅仅相当于是第一种的前4个字符。

上面两种都称为C 类型的字符串,这是因为它们都是以"\0"结尾的。

char buf[50] = {"a","b","c"};

char bud[] = {"a","b","c"};

对于第一种情况,编译器的优化方式和上面第一种是一样的。

对于第二中情况,那就真的是长度为3的字符组数了,由于不是以0结尾,因此就不是C风格的字符数组。

可以通过strlen函数求得字符串的长度,是不包括“\0”的。可以通过sizeof操作符求得字符串在内存中占的大小,是包括“\0”的。

最新文章

  1. 使用codemodel生成Java代码
  2. javascript的继承小结
  3. 初试ubuntu14.4问题集锦
  4. HTML中Id和Name的区别
  5. OPENCV基本滤波算法
  6. 【视频编解码·学习笔记】5. NAL Unit 结构分析
  7. Java集合--TreeSet详细解析
  8. LayaAir引擎开发HTML5最简单教程(面向JS开发者)
  9. if、for、while的详解及实例(一)
  10. Android Studio 无法预览xml布局视图:failed to load AppCompat ActionBar with unkNown error
  11. PHP cURL实现模拟登录与采集使用方法详解教程
  12. 阿里云ECS CentOS 7 安装图形化桌面
  13. virtural machine eth1
  14. 第二个Sprint冲刺总结
  15. 【转】每天一个linux命令(4):mkdir命令
  16. 20145203盖泽双 《Java程序设计》第十周学习总结
  17. Missing styles. Is the correct theme chosen for this layout? Use the Theme combo box above the layou
  18. 《Java核心技术36讲》阅读笔记:谈谈对Java平台的理解笔记
  19. VC6.0加载lib文件的三种方法
  20. IOS 读取xib到tabelView

热门文章

  1. 使用 sftp 向linux服务器传输文件
  2. c++程序猿经典面试题(2)
  3. Linux退出时出现there are stopped jobs如何解决?
  4. UVA 12338 - Anti-Rhyme Pairs(后缀数组+RMQ)
  5. c#高级编程笔记----委托
  6. MySQL 压缩解决方案
  7. 关于Win8 用不了USB转串口驱动
  8. Allegro基本操作——PCB布线
  9. Spring Cloud(十一):Spring Cloud Zuul网关 Filter、熔断、重试、高可用的使用方式
  10. Linux把查询结果写入到文本