Reason why sizeof charstr adds another 1 byte in C Programming
Returning back to C programming again, now I was stumbling why does
char o[] = "1"
and
sizeof o
returns 2, while
char o = '1';
returns 1. Or If I do
char o[] = "2345";
and
sizeof o
is 5. It seems that when char is an array/string, it adds 1.
Then I just found the answer that when it becomes a string, it includes the '\0' or null character or 0 byte mark which indicates the end of the string. Some call it as zero termination. So in the example, char o[] = "1", it goes like {'1', '\0'}.
char o[] = "1"
and
sizeof o
returns 2, while
char o = '1';
returns 1. Or If I do
char o[] = "2345";
and
sizeof o
is 5. It seems that when char is an array/string, it adds 1.
Then I just found the answer that when it becomes a string, it includes the '\0' or null character or 0 byte mark which indicates the end of the string. Some call it as zero termination. So in the example, char o[] = "1", it goes like {'1', '\0'}.
Comments