有编译错误。
数组之间拷贝不能直接使用a=b,而是可以使用字符串拷贝函数strcpy。而且数组a的长度只有3,而数组b有5个字符,还不包括结尾字符。
字符串拷贝函数strcpy格式:strcpy (字符数组名1,字符数组名2) 的功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“”也一同拷贝。字符数名2, 也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。
本函数要求字符数组1应有足够的长度,否则不能全部装入所拷贝的字符串。
扩展资料:
1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。
2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1。
3.若不给可初始化的数组赋初值,则全部元素均为0值。
4.假如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。
参考资料: