char数组长度是如何工作的



我有下面的代码片段

new char[(int)floor(log(25*(n+1)) / log(26))]

当上述n = 27返回2

但为什么上述CCD_ 3的长度是CCD_?

让我们循序渐进:

25*(n+1) = 25 * 28 = 700

假设logMath.log,这是自然对数,那么我们有:

log(25*(n+1)) = 6.551080335043404

同样:

log(26) = Math.log(26) = 3.258096538021482

因此floor(log(25*(n+1)) / log(26)) = floor(6.55/3.258) = floor(2.01) = 2

如预期的那样产生CCD_ 11。

通常,char[] c = new char[n];将生成一个大小等于n的新字符数组c。这意味着从索引0n-1,数组中将有n元素。

相关内容

  • 没有找到相关文章

最新更新