std::string my_string = "";
char test = my_string[0];
Run Code Online (Sandbox Code Playgroud)
我注意到这不会崩溃,每次我测试它,测试都是0.
我可以依赖它总是0吗?还是随意的?
这是不好的编程吗?
编辑:从一些评论中,我认为对此的有用性存在一些误解.
这样做的目的不是检查字符串是否为空.不需要检查字符串是否为空.
情况是有一个字符串可能是空的也可能不是.我只关心这个字符串的第一个字符(如果它不是空的).
在我看来,检查字符串是否为空是不太有效,然后,如果它不是空的,请查看第一个字符.
if (! my_string.empty())
test = my_string[0];
else
test = 0;
Run Code Online (Sandbox Code Playgroud)
相反,我只需查看第一个字符,无需检查字符串是否为空.
test = my_string[0];
Run Code Online (Sandbox Code Playgroud)