结构体指针和数组
2015-04-05 09:44
274 查看
typedef struct{ int num1; int num2; int num3; char name[10]; int all; }Student;
Student *ptr=(Student *)malloc(sizeof(Student)*num); for (i=0;i<num;i++) { scanf("%d %d %d %s",&(ptr+i)->num1,&(ptr+i)->num2,&(ptr+i)->num3,(ptr+i)->name); (ptr+i)->all=(ptr+i)->num1*(ptr+i)->num2*(ptr+i)->num3; aver+=(ptr+i)->all; } aver/=num; for (i=0;i<num;i++) { if ((ptr+i)->all > aver) strcpy(result[0],(ptr+i)->name); if ((ptr+i)->all < aver) strcpy(result[1],(ptr+i)->name); }
很久没写了,一直出错。因为之前写成ptr[i]->num1之类的,后来查了资料才知道。
1.Student a;可以用a.num1来进行访问----就是结构体名.
的形式来进行访问。
2.对于指针ptr来说,只能用指针名->结构体变量名 来进行访问。所以上面的ptr[i]->num1出错,因为数组中ptr[i]==*(ptr+i),ptr[i]并不是一个指针了,改成(ptr+i)就可以了。
3.对于指针如果想用. 的形式进行访问时,需要符合1中的结构形式------ptr[i].num1就可以了。
综上所述:结构体名访问就用.的形式进行访问,而指针的话就用指针名->的形式进行访问。
相关文章推荐
- C语言结构体里的成员数组和指针——读后感
- Linux学习-结构体数组和结构体指针
- C语言——结构体与指针引用&结构体数组与指针引用
- 子函数返回数组(指针和结构体)
- struct 结构体中对数组和指针的操作细节
- C语言,结构体中字符串的声明(采用字符指针还是字符数组)
- 指向结构体数组的指针 学习笔记
- 数组、结构体、指针4
- 结构体指针内存——指针数组——字符串指针内存申请
- []数组_函数调用数组 、指针数组、结构体数组
- 48_结构体指针数组
- 【C语言】用结构体数组指针完成:有三个学生信息,存放在结构体数组中,要求输出全部信息
- 指针与数组、函数、结构体等之间相关问题
- C语言程序设计 数组,结构体和指针练习题
- 数组指针强制转换成结构体指针
- 指向结构体数组的指针应用
- 结构体变量、结构指针变量、结构数组作为函数的参数应用实例分析
- 结构体指针与结构体数组的结合。。。
- 指针数组 指针的指针 二维数组指针 结构体指针 链表
- 结构体数组和结构体指针