了解 Strlen 应用于 int 数组与 char * cast

问题描述 投票:0回答:0

我目前被困在这个问题上。

我有以下代码:

    int v[10] = {-1, 1000, 2};
    
    int a;
    
    a = strlen((char *)v+1);
    
    printf("strlen result for (char *) v+1: %d\n", a);

我无法理解为什么在小端“机器”上的最终结果总是 5。 根据 strlen 文档,在这种情况下转换的 char * 应该返回 4.

我也在在线编译器和其他机器上尝试过,但结果仍然一样。我错过了什么?

c pointers strlen
© www.soinside.com 2019 - 2024. All rights reserved.