C语言二级的题
答案的s->s>a[i].s这个怎么理解我知道是两个在比较大小为什么要s->s这样还有a[i]为什么多了个.s...
答案的s->s>a[i].s这个怎么理解
我知道是两个在比较大小
为什么要s->s这样 还有a[i]为什么多了个.s 展开
我知道是两个在比较大小
为什么要s->s这样 还有a[i]为什么多了个.s 展开
展开全部
程序定义了一个结构体变量类型STU,每一个STU型变量包含两个子变量:char型的num[10]和int型的s。
在fun函数中,有两个参数,分别是STU型的数组变量a[]和STU型的指针变量s。
由于数组a是STU型的,数组a的每一个元素(如a[0])中都包含两个子元素(num和s),c语言规定这两个子元素分别用点号表示,如a[0].num、a[0].s。这就是.s的由来。
对于s这个指针,同样它也是STU型的,当它指向数组a的某一个元素(如a[1])时,仍然可以选择它指向的a[1]的哪一个子元素,c语言也规定了表示方法,那就是->,如用s->num代表num子元素(即a[1].num),s->s代表s子元素(即a[1].s)。
注意:变量用.号,指针用->号,不能用错。
另外,你发的第三张图是什么意思?
在fun函数中,有两个参数,分别是STU型的数组变量a[]和STU型的指针变量s。
由于数组a是STU型的,数组a的每一个元素(如a[0])中都包含两个子元素(num和s),c语言规定这两个子元素分别用点号表示,如a[0].num、a[0].s。这就是.s的由来。
对于s这个指针,同样它也是STU型的,当它指向数组a的某一个元素(如a[1])时,仍然可以选择它指向的a[1]的哪一个子元素,c语言也规定了表示方法,那就是->,如用s->num代表num子元素(即a[1].num),s->s代表s子元素(即a[1].s)。
注意:变量用.号,指针用->号,不能用错。
另外,你发的第三张图是什么意思?
展开全部
通过 typedef 定义了 变量类型 STU, STU 类型 是 结构,它有2个成员 {char name[10]; int s;}
函数 fun 有2个形式参数,函数参数1是 STU a[], 函数参数2是 STU *s。
a[] 是 STU 类型 数组,即 结构数组。 fun函数内,a[i] 是 一个(结构数组的)数组元素,下标 i。a[i] 是一个结构,它的 成员int s 的值, 按语法, 用 a[i].s 表示。
*s 是 STU 类型的指针,fun函数内 s 是一个指针,指向一个STU 类型的结构,它的 成员int s 的值, 按语法, 用 s->s 表示。
(s->s > a[i].s) 就表示 形式参数2传来的结构s的成员int s 的值 与 形式参数1传来的 结构数组a[]的第i个元素的成员int s 的值 比较大小。
if (s->s > a[i].s) *s = a[i]; 如果条件成立,就把 结构数组a[]的第i个元素,即 a[i] 结构 的 值 赋给 *s 结构。(语句中*s 是值,语句中 s 是地址)。
结构体赋值,即把一个结构的所有的成员数值,传递给另一个结构。
函数 fun 有2个形式参数,函数参数1是 STU a[], 函数参数2是 STU *s。
a[] 是 STU 类型 数组,即 结构数组。 fun函数内,a[i] 是 一个(结构数组的)数组元素,下标 i。a[i] 是一个结构,它的 成员int s 的值, 按语法, 用 a[i].s 表示。
*s 是 STU 类型的指针,fun函数内 s 是一个指针,指向一个STU 类型的结构,它的 成员int s 的值, 按语法, 用 s->s 表示。
(s->s > a[i].s) 就表示 形式参数2传来的结构s的成员int s 的值 与 形式参数1传来的 结构数组a[]的第i个元素的成员int s 的值 比较大小。
if (s->s > a[i].s) *s = a[i]; 如果条件成立,就把 结构数组a[]的第i个元素,即 a[i] 结构 的 值 赋给 *s 结构。(语句中*s 是值,语句中 s 是地址)。
结构体赋值,即把一个结构的所有的成员数值,传递给另一个结构。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两个都是结构体指向成员
前一个是指针形式
前一个是指针形式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询