前情提要:
键盘输入buf2的值,将字符数组buf2拷贝到buf1中,若输入的buf2字符中有数值0 循环是否会继续。
while((buf1[i] ==buf2[i]) && ++i);
1 测试字符数组中的 数值0 数值数组中的数值 0
void test03()
{
// 测试字符数组中的 0 数值数组中的 0
int i=1;
while(i)
{
i--;
printf("i=%d\n",i); // 0
}
char arr[128] = "a 0 a \0 a ";
while(arr[i])
{
printf("arr[%d]=%c\n",i,arr[i]);
i++;
}
return;
}
int main(int argc, char *argv[])
{
test03();
return 0;
}
2 预期结果
对于第一个while循环的预期结果为
i=0
对于数组arr[128] 的预期输出结果是
arr[0]=a
arr[1]=空格
arr[2]=0
arr[3]=空格
arr[4]=a
arr[5]=空格
结束
3 编译器运行结果为
4 总结:
在字符数组中键盘输入的是数值0 ,有其ASCII码值为32