结构体类型数组如何进行赋值

img

这种如何进行赋值

dhxx1[0].name[20]=dhxx1[1].name[20]
这样写可以吗?

你的想法是对的,但是name是字符串,应该使用strcpy()函数进行赋值

比如:

strcpy(dhxx1[0].name,"csdn");

如果不想用字符串拷贝函数,那就一个一个字符复制,供参考:

#include <stdio.h>
struct dhxx {
    int  serial;
    char name[21];
    char phone[12];
}dhxx1[100];
int main()
{
    int  i;
    for (i = 0; dhxx1[0].name[i]; i++)
        dhxx1[1].name[i] = dhxx1[0].name[i];
    dhxx1[1].name[i] = '\0';
}

如果是想将一个结构体变量整体赋值给另一个结构体变量,这样写就可以了:

dhxx1[0] = dhxx1[1];