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