作品展示html5网站模板,html网站发布,一级造价工程师专业,国外网站appC 结构体和指针
在本教程中#xff0c;您将学习在C语言编程中使用指针访问结构的成员。您还将学习动态分配结构类型的内存。
C 指向结构的指针
这是创建结构指针的方法。
struct name {member1;member2;..
};int main()
{struct name *ptr, Harry;
}在这里#xff0c;ptr…C 结构体和指针
在本教程中您将学习在C语言编程中使用指针访问结构的成员。您还将学习动态分配结构类型的内存。
C 指向结构的指针
这是创建结构指针的方法。
struct name {member1;member2;..
};int main()
{struct name *ptr, Harry;
}在这里ptr是一个指向struct的指针。
示例使用指针访问成员
要使用指针访问结构的成员我们使用-运算符。
示例
#include stdio.h
struct person
{int age;float weight;
};int main()
{struct person *personPtr, person1;personPtr person1; printf(输入年龄: );scanf(%d, personPtr-age);printf(输入体重: );scanf(%f, personPtr-weight);printf(显示:\n);printf(年龄: %d\n, personPtr-age);printf(体重: %f, personPtr-weight);return 0;
}输出结果
输入年龄: 25
输入体重: 55
显示:
年龄: 25
体重: 55.000000在此示例中使用personPtr person1;将person1的地址存储在personPtr指针中。
现在您可以使用personPtr指针访问person1的成员。
顺便说说
personPtr-age 等同于 (*personPtr).agepersonPtr-weight 等同于 (*personPtr).weight
结构的动态内存分配
在继续本节之前建议您检查C动态内存分配。
有时您声明的结构变量的数量可能不足。您可能需要在运行时分配内存。这是您可以在C语言编程中实现此目标的方法。
示例结构的动态内存分配
示例
#include stdio.h
#include stdlib.h
struct person {int age;float weight;char name[30];
};int main()
{struct person *ptr;int i, n;printf(输入人数: );scanf(%d, n);//为n个struct person分配内存ptr (struct person*) malloc(n * sizeof(struct person));for(i 0; i n; i){printf(分别输入姓名和年龄: );//要访问第一个struct person的成员//可以使用 ptr-name 和 ptr-age//要访问第二个struct person的成员//使用ptr 1-名称和ptr 1- agescanf(%s %d, (ptri)-name, (ptri)-age);}printf(显示信息:\n);for(i 0; i n; i)printf(姓名: %s\t年龄: %d\n, (ptri)-name, (ptri)-age);return 0;
}运行该程序时输出为
输入人数: 2
分别输入姓名和年龄: Harry 24
分别输入姓名和年龄: Gary 32
显示信息:
姓名: Harry 年龄: 24
姓名: Gary 年龄: 32在上面的实例中在用户输入n的地方创建了n个struct变量。
要为n个struct person分配内存我们使用
ptr (struct person*) malloc(n * sizeof(struct person));然后我们使用ptr指针访问person的元素。
相关文章: