c语言中:字符变量定义时未赋值,调试的时候,看到初值是\000?
c语言中:字符变量定义时未赋值,调试的时候,看到初值是0'\000'?'\000'这里的\000是啥意思?字符串数组被拷贝到另一个字符串数组内,前一个字符串的结束符也是 \000?为啥不是\0 呢?
void shuzufuzhi(void)
{
char aa; //初值 0 ‘\000’
char a[]="world";
char b = {'a','c','v','b','n','m',',','a','s','d','u','f','g','h','h'};
strcpy(b,a);
aa = b;
printf("%c\n",b); //调试过程中看到 b【5】是 0‘\000’ 但是在控制台输出里面啥都没输出??
}?? 本帖最后由 superbe 于 2019-9-9 23:31 编辑
'\0aa' (a=0~7)应该是八进制表示的ascii码吧。类似还有’\xhh' (h=0~F)是十六进制表示的ascii码。
'\000' 和 '\0' 其实是相等的,都是ascii码为0的字符(ascii表第1个字符)。
由于这个字符为不可见字符,所以实际上输出了也看不出来。试下printf("%c%c%cABCDE",'\000','\000','\000');会发现ABCDE前有三个字符宽度的空白。
页:
[1]