阿杜诺。 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 的内容,使其成为零长度字符串。
这不是问题,我只是想分享一下我一直头疼的问题。
为什么我得到 1:
Serial.println(strlen(NULL))
因为这个宏:
#define NULL ((char *)0)
我期待的是0,但事实是我在计算'0'的长度,即1
您计算的不是“0”的长度,而是地址 0 处字符串的长度。
strlen 的参数是char *
,它是一个指向char 的指针。
你为它提供一个值为 0 的指针(指向地址 0)。 strlen 查看地址 0 并计算从该地址开始的字符串的长度。以 0 标记的字符串结尾可能是地址 0 的内容,使其成为零长度字符串。