【发布时间】:2021-04-21 03:06:28
【问题描述】:
在以下代码中:
char *title = "VP";
printf("Sizeof title: %zd | Sizeof *title: %zd | Strlen: %zd\n", sizeof title, sizeof *title, strlen(title));
标题大小:8 |大小 *标题:1 |强度:2
似乎sizeof title 对指向字符串的指针(对我来说是 8 个字节)进行操作,而 strlen(title) 可以预见地给了我 2 个。
为什么sizeof *title 在解引用指针时产生 1 而不是 3(字符串的字节长度)?例如,为什么它这样做而不是它会产生什么:
printf("%zd\n", sizeof("VP"));
// 3
【问题讨论】:
-
samuelbrody1249,既然
title是一个指针,而不是一个字符串,为什么期望sizeof title返回它不是的大小?
标签: c