面試題:C語(yǔ)言中 printf("%d",sizeof('c')); 結(jié)果為什么是4?
2023-06-15 14:26 作者:跟Tom學(xué)編程 | 我要投稿
在C語(yǔ)言中,`sizeof`運(yùn)算符用于獲取數(shù)據(jù)類(lèi)型或變量的字節(jié)大小。當(dāng)您使用`sizeof('c')`時(shí),它會(huì)返回字符常量`'c'`的字節(jié)大小。
在C語(yǔ)言中,字符常量的類(lèi)型是`int`,而不是`char`。
盡管字符常量表示一個(gè)字符,但它實(shí)際上是以整數(shù)形式存儲(chǔ)的。
因此,`sizeof('c')`將返回`4`,
即`'c'`字符常量的字節(jié)大小,
這是因?yàn)閌int`類(lèi)型在許多平臺(tái)上通常占用4個(gè)字節(jié)。
如果您想獲取`char`類(lèi)型的大小,可以使用`sizeof(char)`。
根據(jù)C語(yǔ)言規(guī)范,`sizeof(char)`的結(jié)果始終為1,
因?yàn)閌char`類(lèi)型始終占用1個(gè)字節(jié)。
要打印字符的大小,請(qǐng)改為使用`sizeof(char)`,例如:
```c
printf("%zu", sizeof(char));
```
這將打印出`1`,表示`char`類(lèi)型的大小為1字節(jié)。
標(biāo)簽: