结构体的创建
struct poe//这里的poe可以随便换但是struct关键字不行
{
//假设创建的是学生
char name[20];
int height;
};
int main()
{
return 0;
}
int main()
{
//这样创建也是可以的只不过作用域变小了
struct poe
{
char name[20];
int height;
};
return 0;
}
那如果我们想在已经创建好的结构体增加点东西呢?
我们可以这样创建如下:
struct poe
{
char name[20];
int height;
};
struct sp
{
struct poe p1//p1是结构体变量名
int grades;
};
int main()
{
return 0;
}
这里就用到了结构体嵌套。
结构体的初始化
struct poe
{
char name[20];
int height;
};
int main()
{
struct poe sa = { "张三", 39 };
return 0;
}
那我们嵌套结构体怎么初始化呢?
struct sp
{
struct poe p1
int grades;
};
int main()
{
struct sp ac = { { "lisi", 40 }, 50 };
//大括号里面的大括号是初始化p1的然后再在外面初始化sp
return 0;
}
结构体怎么打印在屏幕上呢?
下面就介绍一下结构体的两个操作符
一个是. 一个是->
那怎么使用呢?
struct poe
{
char name[20];
int height;
};
void add(struct poe sa)
{
printf("%s %d", sa.name, sa.height);
}
int main()
{
struct poe sa = { "张三", 39 };
add(sa);
return 0;
}
运行代码可以看到已经打印到屏幕上了,这个.操作符就是用来找到name和
height的
那么->又是怎么用的呢?
struct poe
{
char name[20];
int height;
};
void add(struct poe* sa)
//这里我们传的是地址所以要写成结构体指针
{
printf("%s %d", sa->name, sa->height);
}
int main()
{
struct poe sa = { "张三", 39 };
add(&sa);
return 0;
}
这里也是成功的打印在了屏幕上
所以我们可以这样想传值调用是用. 传址调用是用->