c语言选择题....求每个选项的详细解释,急急急

如题所述

A 是正确的 s[0].name 就是字符串数组name,我们知道数组名就是数组的首地址,所以正确
B 是正确的 s[0].age 这个是值,所以加&取地址
c 是正确的 ps是指针 ps->sex就是取值,所以要加&取地址
d 是错误的 ps->age 是值 ,scanf()的第二个形参要的是地址,故不正确追问

->写成>没关系的吗

追答

应该是-> 而不是> 没有>这样的写法

追问

那那个上面是写错了。。是咩

追答

是的。书本上印错了,也可能是印漏了。但是就算是->也是错误的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-30
首先明确两点,一是scanf用来接受一个值,把这个值赋给后面参数指定的变量,后面的参数必须是变量的地址,二是在引用一个结构体的子元素时,结构体变量用.号,指向结构体的指针变量用->号,选项A里面的参数用.号是对的,因为s[0]是结构体变量,同时因为name是个数组,则数组名就表示这个数组的地址,所以A是没错的。同理B也是正确的,只是因为age不是数组,所以需要加取地址符&。C也是正确的,不同之处是C里面ps是指针变量,所以后面用->号。D的错误就是少了取地址符&追问

b选项加了取地址符号。。并且变成了%d表示读入的是什么啊

唔。。我懂了

唔。。。还有->写成>没关系的吗?

追答

呵呵,还是你细心,我都没注意到,应该是出题的人疏忽了,不能只写>的

本回答被网友采纳
第2个回答  2014-12-30
选择D 应该用&
相似回答