在 C++ 中使用指针算法

In c++ using pointer arithmetic

当您不知道数组有多大时,如何显示字符数组中的最后一个字符? array *('\0' - 1) 会工作吗?

如果一个字符数组包含一个 C 风格的字符串,即它包含一个空终止符,那么您可以应用标准的 C 函数 strlen(),像这样:

char s[] = "Hello";
//...
size_t n = strlen( s );

if ( n != 0 ) std::cout << s[n-1] << '\n';

否则,你可以这样写一个模板函数:

template <size_t N>
char last_char( const char ( &s )[N] )
{
    return s[N-1];
}

并这样称呼它:

char s[] = { 'H', 'e', 'l', 'l', 'o' };

std::cout << last_char( s ) << '\n';