strlen() 函数通常用来计算字符串的长度,但是今天突然发现个奇怪的现象。
如下所示:
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char *str; int n = 0; str = (char *)malloc(30 * sizeof(char)); printf("%d ", strlen(str)); printf("%d ", sizeof(str)); return 0; }
strlen(str) = 34 ?????? 为什么呢? strlen(str) = sizeof(str) + 30 ??? 是吗??