结构体和malloc学习笔记
结构体学习:
为什么会出现结构体:
�� 为了表示一些复杂的数据,而普通的基本类型变量无法满足要求;
定义:
结构体是用户根据实际需要自己定义的符合数类型;
如何使用结构体:
//定义结构体 struct Student { int sid; char name[200]; int age; }; //1.整体赋值 struct Student st = {1001,"zhangsan",18}; //2.单个赋值 st.id = 1001; strcpy(st.name,"zhangsan"); st.age = 18; //3.指针方式赋值 struct Student *pst; pst->sid = 1001; strcpy(pst->name,"zhangsan"); pst->age = 18;
注意事项:
结构体变量不能算数计算,但是可以相互赋值;普通结构体变量和结构体指针变量作为函数传参的问题,推荐使用传递结构体指针的方式,这样效率高节约内存。
malloc学习:
示例代码:
#include #include int main(void) { int len; char a[5] = {1,2,3,4,5}; printf("请输入你要创建的数组长度:len = "); scanf("%d",&len); int * pArr = (int *)malloc(sizeof(int) * len); for (int i = 0; i运行结果:
跨函数使用内存:
#include #include struct Student { int sid; int age; }; struct Student * creatlist() { struct Student * ps = (struct Student *)malloc(sizeof(struct Student)); ps->age = 99; ps->sid = 88; return ps; } void showlist(struct Student * pst) { printf("%d %d\n",pst->sid,pst->age); } int main(void) { struct Student * ps; ps = creatlist(); showlist(ps); return 0; }运行结果:
The End