C语言中的''\0",让你透彻到底
2014-03-02 13:38
141 查看
C语言字符串末尾的''\0",很重要,它不占字符串的实际长度,但是比如字节数为5的时候,最后一个字节不为\0的话,那么输出后的就是乱码。
所以,最好主动在字符串末尾加\0的重要性。
但是,哪些情况可以不用加"\0"呢,编译器会自动补上?
1,对于初始化指针,char *p="abcde"; 最后不用加零,自动补上。
2, char s[]="abcd"; 对于这种未指定长度的字符数组,不用指定,编译器会自动加上\0来结束.空间长度为5,实际长度为4.
有一种情况要加上的:
例如,char s[4]="abcd";这样就有错误了,因为总长度为4,但是字符占了4,那\0跑哪儿去了,所以会产生错误。
这些东西我之所以总结,在开发与测试中经常出现错误,字符串的处理是很重要的,都不希望看见乱码。
看过之后,想更加深入了解,来我的经验共享群获取更多丰厚资料:201588891, 软件测试与开发欢迎您。
所以,最好主动在字符串末尾加\0的重要性。
但是,哪些情况可以不用加"\0"呢,编译器会自动补上?
1,对于初始化指针,char *p="abcde"; 最后不用加零,自动补上。
2, char s[]="abcd"; 对于这种未指定长度的字符数组,不用指定,编译器会自动加上\0来结束.空间长度为5,实际长度为4.
有一种情况要加上的:
例如,char s[4]="abcd";这样就有错误了,因为总长度为4,但是字符占了4,那\0跑哪儿去了,所以会产生错误。
这些东西我之所以总结,在开发与测试中经常出现错误,字符串的处理是很重要的,都不希望看见乱码。
看过之后,想更加深入了解,来我的经验共享群获取更多丰厚资料:201588891, 软件测试与开发欢迎您。
相关文章推荐
- C语言里有"引用传递"吗?到底什么是"引用传递"?
- C语言中"\0"和空格的区别
- C语言关于"0" '0' '\0'之间的区别。
- 深入理解c语言——'\0','0',"0" ,0之间的区别
- c语言'\0','0',"0" ,0之间的区别
- c语言'\0','0',"0" ,0之间的区别
- C语言 0x0,0,null,NULL,'0',"0",' '," "等区别
- JAVA从MySQL取出datetime类型的字段输出后多了个".0"
- "select一直返回0"的问题解决和总结
- Web导出Excel时"0"自动消失的解决方案
- Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/jdesktop/swingworker/SwingWorker
- path="/"是什么意思 <Context path="/" docBase="e:\\project\\j2ee\\web" debug="0" reloadable="false" />
- iOS开发-Xcode8:"subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0"的解决
- Coding沙龙之0与‘0’与‘\0’与"0"与"\0"以及ASCII码
- "Unexpected value from nativeGetEnabledTags: 0"log的过滤
- 关于C语言中的 " 类型提升 "(type promotion)
- usage of char array which elements are mutilple STRINGs ended with a "\0"
- Tabindex="-1" 与Tabindex="0"、任意数字 的区别
- Thread-0" kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.
- C语言输出函数printf("%AB", v);