如何建立网站教程,江门网站建设兼职,wordpress加入自己的类库,广州站是广州火车站吗void test2()
{char str1[10], str2[10];int i;for(i0; i10; i)str1[i] a;strcpy( str2, str1 );
}这段代码有什么问题#xff1f; 解答#xff1a;如果面试者指出字符数组str1不能在数组内结束可以给3分#xff1b;如果面试者指出strcpy(str2, str1)调用使得从str1复制…void test2()
{char str1[10], str2[10];int i;for(i0; i10; i)str1[i] a;strcpy( str2, str1 );
}这段代码有什么问题 解答如果面试者指出字符数组str1不能在数组内结束可以给3分如果面试者指出strcpy(str2, str1)调用使得从str1复制到str2的字节数具有不确定性可以给7分在此基础上指出库函数strcpy工作方式的给10分。
str1不能在数组内结束:因为str1的存储为{a,a,a,a,a,a,a,a,a,a},没有\0(字符串结束符)所以不能结束
strcpy(char *s1,char *s2)他的工作原理是扫描s2指向的内存逐个字符付到s1所指向的内存直到碰到\0,因为str1结尾没有\0所以具有不确定性不知道他后面还会付什么东东。
正确应如下 void test2()
{char str1[10], str2[10];int i;for(i0; i9; i){str1[i] ai; //把abcdefghi赋值给字符数组}str[i]\0;//加上结束符strcpy( string, str1 );
}