22 December 2023

C++ 核心指南目录

“Use char* to refer to a single character”

理由

目前代码中大部分用到 char* 的地方都是错误的根源。

坏例子

char arr[] = {'a', 'b', 'c'};

void print(const char* p)
{
    cout << p << '\n';
}

void use()
{
    print(arr);   // run-time error; potentially very bad
}

数组 arr 不是一个 C 风格字符串,因为它不是空字符结束的。

其他建议

请查看 zstring, string, string_view

强化

  • 标记在 char* 上使用 [] 的情况