| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1112 人关注过本帖
标题:[求助]请教和指针有关的问题,真的有点搞糊涂了!
只看楼主 加入收藏
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
 问题点数:0 回复次数:16 
[求助]请教和指针有关的问题,真的有点搞糊涂了!

有下面一段程序:
include<stdio.h>
main()
{
int**k,*j,i=100;
j=&i;k=&j;
printf("%d\n",**k);
}
以上程序的输出结果是
A:i的地址
B:100
答案是B,可我觉得是A,我是这么想的:j=&i就是说j指向i的地址,k=&j表示k指向j的地址,这两句的意思是k指向i的地址,*k表示指针k的值,**k则表示k的地址,k的地址指向i.所以我觉得A对,可答案是B,我错在哪里?

设有以下语句,其中不是对a数组元素正确引用的是(其中0<<i<10)

int a=[10]={1,2,3,4,5,6,7,8,9],*p=a
Aa[p-a]
B(&a[i])
Cp[i]
D*(*(a+i))

答案是D,我觉得B也不是正确的引用,因为(&a[i])取的是a[i]的地址,而不是取值,我记得*是取值,&是取地址,不知道我又错在哪里?

[此贴子已经被作者于2006-8-18 20:44:46编辑过]

搜索更多相关主题的帖子: 指针 糊涂 
2006-08-17 23:53
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 

變數 值 址
i 100 M (&i)
j M N (&j)
k N P (&k)

*k = *(k的值) = *N = j
**k = *j = i = 100
-------------------------------------------

不明確意思p


原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-08-18 03:38
wuyufenjr
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2006-7-20
收藏
得分:0 
以下是引用inku在2006-8-17 23:53:04的发言:
有下面一段程序:
include<stdio.h>
main()
{
int**k,*j,i=100;
j=&i;k=&j;/*j指向i的地址,再k指向j的地址,k又是二级指针,**k=100*/
printf("%d\n",**k);
}
以上程序的输出结果是
A:i的地址
B:100
答案是B,可我觉得是A,我是这么想的:j=&i就是说j指向i的地址,k=&j表示k指向j的地址,这两句的意思是k指向i的地址,*k表示指针k的值,**k则表示k的地址,k的地址指向i.所以我觉得A对,可答案是B,我错在哪里?

设有以下语句,其中不是对a数组元素正确引用的是(其中0<<i<10)
Aa{p-a}
B(&a[i])
Cp[i]
D*(*(a+i))
答案是D,我觉得B也不是正确的引用,因为(&a[i])取的是a[i]的地址,而不是取值,我记得*是取值,&是取地址,不知道我又错在哪里?

2006-08-18 11:18
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 
晕倒,什么帖子呀,

中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-18 11:20
wuyufenjr
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2006-7-20
收藏
得分:0 
include<stdio.h>
main()
{
int**k,*j,i=100;
j=&i;k=&j;/*j指向i的地址,再k指向j的地址,k又是二级指针,**k=100*/
printf("%d\n",**k);
}
2006-08-18 11:38
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 
晕倒,什么帖子呀,

中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-18 11:55
触电
Rank: 1
等 级:新手上路
威 望:1
帖 子:228
专家分:0
注 册:2006-7-26
收藏
得分:0 
论坛有BUG
第二个帖子看不懂
2006-08-18 14:14
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 

设有以下语句,其中不是对a数组元素正确引用的是(其中0<<i<10)

int a=[10]={1,2,3,4,5,6,7,8,9],*p=a
Aa{p-a}
B(&a[i])
Cp[i]
D*(*(a+i))
答案是D,我觉得B也不是正确的引用,因为(&a[i])取的是a[i]的地址,而不是取值,我记得*是取值,&是取地址,不知道我又错在哪里?

昨天关键的句子忘打了,实在不好意思,抱歉,现在补上了.

2006-08-18 14:40
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用yeshirow在2006-8-18 3:38:24的发言:

變數 值 址
i 100 M (&i)
j M N (&j)
k N P (&k)

*k = *(k的值) = *N = j
**k = *j = i = 100
-------------------------------------------

不明確意思p

请问高手**k到底是表示地址还是表示数值,这个我一直搞不懂,谢谢!

2006-08-18 14:42
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
question 2:AD
只是对其进行引用,并不一定是要其值.您的理解是对的。

对不礼貌的女生收钱......
2006-08-18 14:46
快速回复:[求助]请教和指针有关的问题,真的有点搞糊涂了!
数据加载中...
 
   



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

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