永发信息网

C语言关于指针和结构体的小问题

答案:5  悬赏:70  手机版
解决时间 2021-03-16 06:13
有以下程序段:
struct st
{int x; int *y;}*pt;
int a[]={1,2},b[]={3.4};
struct st c[2]={10,a,20,b};
pt=c;
以下选项中表达式的值为1的是( )
A.*pt->y B.pt->x C.++pt->x D.(pt++)->x
正确的答案是A,可是我看不懂这程序,还有这几个选项,也不理解,能帮我详细地讲解一下这程序和这几个选项吗?谢谢!
最佳答案
struct st
{int x; int *y;}*pt;//struct st * 的变量pt。int *y是int类型的指针y。
int a[]={1,2},b[]={3.4};//两个数组。
struct st c[2]={10,a,20,b};初始化了两个结构体c[0]={10,a}和c[1]={20,b}。其中c[0]={10,a}等价于
c[0]->x=10;c[0]->y=a;(c[0]->y=&a[0];)
pt=c;//pt指向了结构体数组的第一个元素。

答案解析:
A. *pt->y == *(pt->y): pt->y==c[0]->y==a; *(pt->y)==*(a)==a[0]=1;
B. pt->x == pt->x== c[0]->x==10;
C. ++pt->x == ++(pt->x) ==++10=11;(这里的自加是对结构体中的变量的自加)
D.(pt++)->x == (pt->x; pt++;);(嗯 这样子了明白了吗)

以上。
全部回答
问老师去
printf(" %num:%d,name:%s,sex:%s,age:%d \n", stu_1.num , stu_1.name , stu_1.sex , stu_1.age ) ; sex是个字符 你用了%s printf(" %num:%d,name:%s,sex:%c,age:%d \n", stu_1.num , stu_1.name , stu_1.sex , stu_1.age ) ;
我看 yehuaw回答已经非常详细了。我只是说说学习的建议吧。题目看不懂没关系,不明白每个变量是什么意思也没有关系,因为你毕竟仅仅是拿眼去看。你可以把这些代码敲到VS环境中,单步调试,为每个变量添加监视,看看每个变量到底是地址的值还是数值。在程序的调试中去理解,一开始可能比较吃力,不过坚持一段时间,肯定有大的收获。
int a[]=;可以理解为定义了一个指针,指针指向的第一个地址装的1,第二个地址装的2. b依次类推 结构体st中有两成员,一个为x一个为*y。 c为st型的结构体数组,分别是c[0],c[1]。 c[0]中有两个成员:c[0].x = 10;c[0].y = a; pt指向c[0]; 分析答案: 显然为1的是a[0];我们只需要找出a[0是那个就可以了。 c[0].y就是a; pt为指向c[0]的指针。所以答案应该是*pt->y
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
赛乐赛减肥药谁吃过有效果吗?
使命召唤11高级战争汉化补丁放哪里
有趣的字谜 一匹怪马两张嘴还有马儿踩断半
江岸区武汉77宾馆(南京路)这个地址在什么地方
我有一个大明宣德炉,背后有16个字的那种,请
冷库建材生产厂家有哪些?
生病住院老公说没钱,我把身份证压这了,他不
建行聚财通3个月利率1.5利息多少?
三餐美食如何申请账号
我父亲是胰腺癌晚期了,奥施康定已经吃了一个
香港三叶草限量版的鞋价格是不是要比其他地方
没有任何手续的煤矿上班得了吸肺能得到赔偿吗
李溢百货店在什么地方啊,我要过去处理事情
长安之星皮带一直响怎么办
家里有炸好的鱼,想做点儿汤淋在上面怎么做
推荐资讯
贪食还能升级吗 dnf无尽贪食首饰套升
冀猫科技净水器怎么样
乐安县国税局龚坊分局怎么去啊,有知道地址的
劲舞团领舞模式G和Y怎么按?
四年级旅游后的心得句子
勤源冷冻厂我想知道这个在什么地方
韶关到乐昌九峰山开车要怎么走?
复试前到北京师范大学找导师有用么?北京师范
这种做法写的字不大
烟台职业学院每年的寒暑假几号开学
Hello酷狗我想知道这个在什么地方
您好,我的工商银行卡丢了,这个卡是用来还房
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?