【发布时间】:2018-03-24 03:14:14
【问题描述】:
printf("%lu \n", sizeof(*"327"));
我一直认为在 64 位系统上指针的大小是 8 字节,但是这个调用一直返回 1。有人可以解释一下吗?
【问题讨论】:
-
sizeof(*"327")是sizeof(char)因为*取消引用您的文字字符串的第一个字符。试试sizeof(char *) -
我还建议您阅读例如this
printf(and family) reference,因为"%lu"是sizeof参数的错误格式。 -
旁注:
sizeof不是可以调用的函数。 -
你可能一直在想
sizeof(&"327")。