一个c语言中结构体数组的选择题

下面有错误的选项吗?我咋感觉都是正确的
求详细指点,哪个选项错的为什么

img

img

楼上说的太泛了。
访问数组的元素应该是下标访问stu[i]或指针访问stu+i,不加+i只用stu表示访问数组首元素。stu[i]访问数组用点运算符.访问,stu+i访问数组用->运算符。既然是指针访问,(stu+i)->grade实际等价于(*(stu+i))->grade。反而B选项,每次都是访问数组的第一个元素,访问重复10次,没有遍历数组。这种写法放到其他不支持指针的语言中往往会出现编译错误。
如果我的回答对你有帮助,还望采纳。

B是错的,一看就不对,没有体现出i的作用,怎么知道是在取第几个人的成绩

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/224216
  • 这篇博客你也可以参考下:【C语言】帮你解决c语言中数组的问题
  • 除此之外, 这篇博客: c语言使用循环如何打印出来一个菱形?了解他的循环逻辑,其实很简单中的 打印菱形 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    打印一个菱形其实有很多办法,不过最具有代表性的就是下面说的这两种

    • 直接printf() 暴力打印

    这种可能是c语言初学者最常用的办法,几乎可以针对任何打印图形的问题,但是这种方式效率不高,而且做起来也很累,我们通常在无法找出规律,或者规律很复杂的时候才使用他,几乎只要会使用printf()就会进行操作了,这里就不再多讲了

    • 通过寻找规律,使用循环打印

    这种我们需要找到规律,通过控制循环的条件来进行打印。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^