关于结构体类型的学习
Posted shellingfordly
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于结构体类型的学习相关的知识,希望对你有一定的参考价值。
1. 定义结构体类型时,最后的分号一定不能忘;
struct st int num; int s; //分号不能少 ;
2. 关于结构体成员的获取:
int main(void) struct st a[3]; int i=0; scanf("%d",a); //输入a[0].num的值 scanf("%d",&a->s); //a.s的值 scanf("%d",(a+1)); //a[1].num scanf("%d",&(a+1)->s); //a[1].s scanf("%d",&((*(a+2)).num)); //a[2].num scanf("%d",&a[2].s); //a[2].s printf("输入结束"); for(i=0;i<3;i++) printf("a[%d].num--%d; a[%d].s--%d\n",i,a[i].num,i,a[i].s);
- 对于一维数组a[N]来说,a是数组第一个元素的地址;
- 对二维数组a[N][M]来说,a是第一排第一个元素的地址;
- 对于结构体类型数组st a[N]来说,a是数组中第一个元素的第一个成员的地址;
3. 成员获取
- a第一个元素的num的地址;
- a->s表示第一个元素的s数据成员,加&()获取其地址,&优先级比->低,因此可以不用加();
- &(*(a+2)).num表示第三个元素的num的地址,因为“.”的优先级比*的高,因此要括起来(*(a+2))num,若写成*(a+2).num则错误;
以上是关于关于结构体类型的学习的主要内容,如果未能解决你的问题,请参考以下文章