C#中定义一个空字符串,非常简单
C++中通过string定义空字符串也是非常简单
但是,,如果想通过char *定义一个空字符串,如何呢?
突然被这个问题难道了。。。。。
下面这种方式可以么?
char * pA = "";
结果编译出错
然后我又想写个空字符串,然后赋值给他,结果又编译出错
string strEmpty = "";
char * pA = strEmpty.c_str();
最后一招,看下面
可以通过编译,但是这是一个空字符吗?
debug了一下,还是为空
思考了一下空字符串的原理,是有一个内存空间,但是第一个字节为字符串的结束符,所以为空字符串。
所以,换一个思路
看下面的代码:成功制造了一个空字符串
还可以再优化一下,效果一样:
int main()
{
std::cout << "Hello World!\n";
char * pA =NULL;
char pB[1] = { 0 };
pA = pB;
std::cout << pA;
std::cout << "Hello World!2\n";
getchar();
}