Difference between sizeof ('a') and sizeof ("a")

My question is about a statement sizeofin C.

sizeof('a');equal to 4, since it takes 'a'as an integer: 97.

sizeof("a");equals 2: why? Also (int)("a")provide some trash value. Why?

+5
source share
2 answers

'a'is a character constant — such as intin the C standard — and is a single character. "a"- this is something else: it is a string literal and actually consists of two characters: aand a terminating null character.

char, . sizeof(char) - 1, , sizeof("stringliteral") , .

, 'a' int char, C , sizeof('a') == 4: , sizeof('a') == sizeof(int). ++, sizeof('a') == sizeof(char).

+22

'a' , "a" - , 'a', .

+4

All Articles