结构体数组和结构体指针

#include #include /** 结构体数组和结构体指针(或结构体数组指针) */ struct Stu{ int age; char sex; char str[10]; //结构体数组的定义与初始化 }stu_arr[2]={{10,20,"haha"},{30,40,"niha0"}}; /** 打印结构体信息 */ int printInfo(struct Stu st){ printf("%d %d %s \n",st.age,st.sex,st.str); return 0; } /** 打印结构体数组信息 */ int printArrInfo(struct Stu arr[],int size){ int i; int length = sizeof(arr)/sizeof(arr[0]); printf(" size of array equals%d %d \n", sizeof(arr),sizeof(arr[0])); for(i=0; iage,(st+i)->sex,(st+i)->str); printf("输出方法二:%d %d %s \n",(*(st+i)).age,(*(st+i)).sex,(*(st+i)).str); printf("输出方法三:%d %d %s \n\n",st[i].age,st[i].sex,st[i].str); } return 0; } int main(int argc, char *argv[]){ struct Stu s2={44,77,"heihei"}; //printf("结构体变量输出的结果是: %p %p",s2,&s2); printInfo(s2); printArrInfo(stu_arr,2); //变量必须加& printSPInfo(&s2,1); //指针定义比数组定义兼容性更好,既能传结构体,又能传结构体数组 //数组变量不需要加& printSPInfo(stu_arr,2); }


    推荐阅读