|
本帖最后由 小白学编程 于 2021-8-22 22:57 编辑
- [size=4][size=6][color=Lime]#include <stdio.h>
- #include <Windows.h>
- #include <stdlib.h>
- #pragma warning(disable:4996)
- typedef struct Person
- {
- //不要再结构体定义的时候赋值
- char name[64];
- int age;
- }myPerson; //myPerson是struct Person类型的别名
- void test01()
- {
- myPerson p = { "张三",20 };
- printf("姓名:%s年龄:%d\n", p.name,p.age);
- }
- struct Person2
- {
- char name[64];
- int age;
- }myPerson02; //不加typedef myPerson是一个结构体变量
- void test02()
- {
-
- myPerson02.age = 30;
- strcpy(myPerson02.name, "李四");
- printf("姓名:%s 年龄:%d \n", myPerson02.name, myPerson02.age);
- }
- //这种类型是匿名类型 后期无法创建名称 不常用 知道就好
- struct
- {
- char name[64];
- int age;
- }myPerson3 = { "王五",40 };
- void test03()
- {
- printf("姓名:%s 年龄:%d \n", myPerson3.name, myPerson3.age);
- }
- void test04()
- {
- //再栈上创建结构体变量
- struct Person p1 = { "aaa",10 };
- //再堆区创建结构体变量
- struct Person* p2 = malloc(sizeof(struct Person));
- if (p2 == NULL)
- {
- printf("内存分配不成功");
- }
- else
- {
- p2->age = 100;
- strcpy(p2->name, "赵六");
- printf("姓名:%s 年龄:%d \n", p2->name, p2->age);
- }
-
- if (p2 != NULL)
- {
- free(p2);
- p2 = NULL;
- }
-
- }
- void printArray(struct Person persons[], int len)
- {
- for (int i = 0; i < len; i++)
- {
- printf("姓名:%s 年龄:%d \n", persons[i].name, persons[i].age);
- }
- }
- void test05()
- {
- //结构体变量数组 再栈上创建
- struct Person persons[] =
- {
- {"aaa",10},
- {"bbb",20},
- {"ccc",30},
- {"ddd",40},
- };
- int len = sizeof(persons) / sizeof(struct Person);
- printArray(persons, len);
- //再堆区创建
- struct Person* personArr = malloc(sizeof(struct Person) * 4);
- if (personArr == NULL)
- {
- printf("内存分配不成功!");
- }
- else
- {
- for (int i = 0; i < 4; i++)
- {
- sprintf(personArr[i].name, "name_ % d", i);
- personArr[i].age = i + 18;
- }
- }
-
- printArray(personArr, 4);
- if (personArr != NULL)
- {
- free(personArr);
- personArr = NULL;
- }
- }
- int main(void)
- {
- test01();
- test02();
- test03();
- test04();
- test05();
- return EXIT_SUCCESS;
- }
- [/color][/size]
- 程序运行正常 遇到C6011破浪线的加入判断即可[/size]
复制代码 |
评分
-
查看全部评分
上一篇: MFC ScrollBar滚动条的使用下一篇: c语言学习之路的点滴记录——文件的字符读和写基本操作
|