结构体数组和一维数组、二维数组学习内容无大区别,要注意的是结构体的定义和初始化有稍微的不同。
结构体对字符串的定义有两种,使用方法也不一样。
要是结构体是这样char *name;定义的,则可以直接boy[1].name=“xiao hong";初始化;
要是结构体是这样char name[21];定义的,则要这样初始化:boy[1].name=“xiao hong";strcpy(boy[1].name,"xiao hong");
下面也是对结构体数组的遍历:
- int main(int argc, const char *argv[]){
- //结构体
- struct stu
- {
- int num;
- char *name;
- char sex;
- float score;
- };
- struct stu boy[5]=
- {
- {101,"liming",'F',45},
- { 102, "zhanghong", 'M', 62.5 },
- { 103, "hefeng", 'F', 92.5 },
- { 104, "chengling", 'M', 87 },
- { 105, "wangming", 'M', 58 },
- };
- for (int i = 0; i < 5; i++)
- {
- printf("学号=%d,姓名=%s\n", boy[i].num, boy[i].name);
- }
- return 0;
- }
复制代码 |
|