2011-05-04 10 views

Respuesta

20

6 caracteres: EFG\r\n\0

Esto se puede ver por sí mismo mediante la ejecución:

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

El siguiente código muestra el valor de cada byte:

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 
+0

D'oh, pasé demasiado tiempo en mi pequeño mundo de TMP. :) – Xeo

+0

N.B: No necesita paréntesis con sizeof. – Johnsyweb

48

6, con la prueba por Ideone (mira los errores).


Editar: En realidad, el ejemplo se veía así en un primer momento:

#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; 
} 

Pero quería que sea breve y evitar incluye. :)

+8

jaja, guau esa es una manera increíble de mostrar la respuesta ... deseo podría duplicar- upvote – Claudiu

+1

muy buena manera de presumir! ;) – Nim

Cuestiones relacionadas