char *a = '\0'
或
char *a = NULL
时,
a == NULL都成立,困惑
'\0'到底是个什么东西?
写第一种的不好,至少说明是初学者。a 四字节,'\0'一个字节。类型不同,要转换。
第二种好。
strlen(NULL) 程序会出错
因为你传递的NULL是地址0,引起非法地址访问strlen("\0“)不会
答:"\0" 这个字符串在编译链接以后,在程序中是有一块内存的,也就是有实际的存储空间,当然不会引起错误
总之,这两个问题不是同一性质的,一个的内存地址编号为0,一个是内存中的内容为“\0”