标题:好难的题目???
只看楼主
majunjie991010
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2004-7-18
 问题点数:0 回复次数:7 
好难的题目???

题目是这样的:

struct st

{

int n;

struct st *next;

}

static struct st a[3]={5,&a[1],7,&a[2],9,' \0 '},*p;

则下列表达试的值是6的是:A、p++—>n;B、p—>n++;C、(*p).n++;D、++P—>n

该选什么?为什么要选着项?“ a[3]={5,&a[1],7,&a[2],9,' \0 '”是什么意思,数组中的指针该怎么算,怎么理解。请各问大哥指点。再这里谢了。

搜索更多相关主题的帖子: struct int next static 
2004-07-25 17:54
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
得分:0 

选C,链表题

2004-07-25 18:11
majunjie991010
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2004-7-18
得分:0 

楼上的老大,可是原题是说答案是D我就不明白这是为什么?


2004-07-26 12:24
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
得分:0 

呵呵,我错了,不好意思,其实我还没懂,我先找找书,你等我。

2004-07-26 13:28
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
得分:0 
以下是引用majunjie991010在2004-07-25 17:54:55的发言:

static struct st a[3]={5,&a[1],7,&a[2],9,' \0 '},*p;

则下列表达试的值是6的是:A、p++—>n;B、p—>n++;C、(*p).n++;D、++P—>n

该选什么?为什么要选着项?“ a[3]={5,&a[1],7,&a[2],9,' \0 '”是什么意思,数组中的指针该怎么算,怎么理解。请各问大哥指点。再这里谢了。

题外话:这里 static struct st a[3]={5,&a[1],7,&a[2],9,' \0 '},*p; 是结构对象化并赋值 而在C++语法中,对象化的时候不需要再加struct,而只需要在声明时加。

static struct st a[3] 静态定义了一个结构数组,这个数组有三个对象,每个对象有两个成员, 以上是概念。然后{5,&a[1],7,&a[2],9,' \0 '} 用逗号隔开分别对三个对象得每个成员赋值, 例如,a[0].n = 5 a[0].next = &a[1] a[1].n = 7 a[1].next = &a[2] a[2].n = 9 a[2].next = '\0' (结束符)

同时由于定义一个指针p指向a(即&a[0]),下面来分析选项:

A、p++—>n; 取p->n = 5,再对p的地址移位,此时取得值为5,p指向a[0].next = &a[1] B、p—>n++; 取p->n = 5,令a[0].n加1,此时n = 6,但取出来是的值是5 C、(*p).n++; 其实p->n等价于(*p).n,而操作原理同B, D、++p—>n 这里省略了(),即++(p->n),其实这里是取p->n先对其加1在得出值

我一开始犯错误是以为D的操作是先对p移位,再指向n,此时就指向了a[1].n,这样想忽略了优先级!

[此贴子已经被作者于2004-07-26 13:54:57编辑过]

2004-07-26 13:54
majunjie991010
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2004-7-18
得分:0 

真是太感谢了,你有qq吗?想向你请教一点问题可以吗?我的qq是271959690


2004-07-27 20:27
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
得分:0 

不要说请教,小的受不起,有什么问题一齐讨论!最好拿上来这里一齐讨论,

反正这里高手多得是(除了我!!)……

2004-07-27 22:00
lmclxl1227
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2004-7-23
得分:0 
“live41”真是心思挺清的。
2004-07-28 19:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-3604-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.086740 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved