数组中有多少个元素?

时间:2011-05-04 20:46:25

标签: c++

char a [] = "EFG\r\n" ;

上面的声明创建的数组中有多少个元素?

2 个答案:

答案 0 :(得分:48)

6,由Ideone证明(查看错误)。


编辑:实际上,该示例最初看起来像这样:

#include <iostream>

template<class T, int N>
int length_of(T (&arr)[N]){
  return N;
}

int main(){
  char a [] = "EFG\r\n" ;
  std::cout << length_of(a) << std::endl;
}

但我想保持简短并避免包含。 :)

答案 1 :(得分:20)

6个字符:E F G \r \n \0

您可以通过以下方式自行查看:

char a [] = "EFG\r\n" ;
printf("%d\n", sizeof(a));
// 6

以下代码显示每个字节的值:

char a [] = "EFG\r\n" ;
int length = sizeof(a), i;
for(i = 0; i < length; i++)
{
    printf("0x%02x ", a[i]);
}
// 0x45 0x46 0x47 0x0d 0x0a 0x00