最后奉上我该内容的学习总结完整版例子。
- #include "stdio.h"
- /*
- 结构体学习1,结构体的定义方式:
- struct tag{member1;member2;member3;} variable-list;
- 或者
- struct tag{member1;member2;member3;};
- struct variable-list;
- 或者
- struct {member1;member2;member3;} variable-list;
- */
- void test1(void)
- {
- struct tag{int x; int y;}m[9];
- for(int i=0;i<9;i++)
- {
- m[i].x=i+1;
- m[i].y=(i+1)*(i+1);
- }
- for(int i=0;i<9;i++)
- {
- printf("%d*%d = %d\n",m[i].x,m[i].x,m[i].y);
- }
- }
- void test2(void)
- {
- struct tag{int x; int y;};
- struct tag m[9];
- for(int i=0;i<9;i++)
- {
- m[i].x=i+1;
- m[i].y=(i+1)*(i+1);
- }
- for(int i=0;i<9;i++)
- {
- printf("%d*%d = %d\n",m[i].x,m[i].x,m[i].y);
- }
- }
- void test3(void)
- {
- struct {int x; int y;} m[9];
- for(int i=0;i<9;i++)
- {
- m[i].x=i+1;
- m[i].y=(i+1)*(i+1);
- }
- for(int i=0;i<9;i++)
- {
- printf("%d*%d = %d\n",m[i].x,m[i].x,m[i].y);
- }
- }
- /*
- 定义新的类型方法
- typedef 要被定义的内容 新的类型名
- 这与#define刚好相反
- #define 起个新名字 要被替换的内容
- 例如
- #define PI 3.14
- typedef int INTER;
- */
- void test4(void)
- {
- typedef int IN[3];
- IN xx={1,2,3};
- printf("xx[1]=%d\n",xx[1]);
- }
- void test5(void)
- {
- typedef struct stu
- {
- char *name;
- int age;
- char sex;
- } STU;
- //通过typedef给后面的结构体起了个新的名字STU,下面两种创建方式效果是一样。
- struct stu b1,b2;
- STU b3={"TOM",18,1};
- b1=b3;
- b2.name="Jack";
- b2.age = 14;
- b2.sex = 0;
- printf("Name:%s \n Age:%d \n SEX:%d\n",b2.name,b2.age,b2.sex);
- printf("Name:%s \n Age:%d \n SEX:%d\n",b3.name,b3.age,b3.sex);
- }
- int main(void)
- {
- test1();
- printf("---------------------------------------------------\n");
- test2();
- printf("---------------------------------------------------\n");
- test3();
- printf("---------------------------------------------------\n");
- test4();
- printf("---------------------------------------------------\n");
- test5();
- printf("---------------------------------------------------\n");
- return 0;
- }
|