C/C++__字符串的结束符“\0”到底是什么
2015-07-27 17:52
501 查看
一直对字符串的结束符"\0"的具体意义感到困惑,今天实际测试了一下,最终我找出来了答案。
通过以上程序,我们不难发现“\0”即为转义字符\0,也就是ASCII码表中的第0号。
转义字符表:
所有的转义字符和所对应的意义:
注意:区分,斜杠:"/" 与 反斜杠:"\" ,此处不可互换
下面为ASCII码表:
另外附上一段程序证明\0即为ASCII码中的0
#include <cstdio> #include <cstring> #pragma warning(disable:4996) #define MAXN 2000 int main(int argc, char **argv){ char szFileName[MAXN] = "\0"; //char szFileName[MAXN] = { 0 }; printf("%d %d\n", szFileName[0], '0'); //printf("%d %d\n", szFileName[1], '0'); /* for (int i = 0; i < argc; i++) { strcat(szFileName, argv[i]); strcat(szFileName, " "); } printf("%s\n", szFileName); */ return 0; }
通过以上程序,我们不难发现“\0”即为转义字符\0,也就是ASCII码表中的第0号。
转义字符表:
所有的转义字符和所对应的意义:
转义字符 | 意义 | ASCII码值(十进制) |
\a | 响铃(BEL) | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
\\ | 代表一个反斜线字符''\' | 092 |
\' | 代表一个单引号(撇号)字符 | 039 |
\" | 代表一个双引号字符 | 034 |
\0 | 空字符(NULL) | 000 |
\ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
\xhh | 1到2位十六进制所代表的任意字符 | 二位十六进制 |
下面为ASCII码表:
另外附上一段程序证明\0即为ASCII码中的0
#include <cstdio> #include <iostream> using namespace std; int main(){ char a[20] = "Hi,Kemeng~"; printf("%s\n", a); a[2] = 0; printf("%s\n", a); return 0; }
相关文章推荐
- return value of operator overloading in C++
- C/C++__如何创建一个空字符串数组
- 3、C/C++中的const专题
- VS2008 C++ 错误 fatal error C1853: "Debug\sift.pch"
- c语言 字符版 简易2048
- C++Primer小结(1)
- C++学习笔记(类型转换)
- C++11中的匿名函数(lambda函数,lambda表达式) (转)
- c++ 使用全局变量的方法多个文件
- C++第二节(1):public和private、初始化列表、函数重载
- 面向 C++ 的测试驱动开发
- LeetCode 207. Course Schedule(拓扑排序-求有向图中是否存在环)
- VC: 更改MFC程序图标
- 安装cpplint
- C++技巧之STL(持续更新)
- 数字滤波器实现(mantlab+C语言)
- C语言链表(1)——搜索
- Windows下pip安装包报错:Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat
- c++模板
- C++构造函数与传默认值的关系