阿杜诺。 NULL 的长度

Arduino. The length of NULL

这不是问题,我只是想分享一下我一直头疼的问题。

为什么我得到 1:

Serial.println(strlen(NULL))

因为这个宏:

#define NULL ((char *)0)

我期待的是0,但事实是我在计算'0'的长度,即1

您计算的不是“0”的长度,而是地址 0 处字符串的长度。

strlen 的参数是char *,它是一个指向char 的指针。

你为它提供一个值为 0 的指针(指向地址 0)。 strlen 查看地址 0 并计算从该地址开始的字符串的长度。以 0 标记的字符串结尾可能是地址 0 的内容,使其成为零长度字符串。