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

有下面一段程序:
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
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
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
请问soft_wind **k到底是表示地址还是表示数值,这个我一直搞不懂,谢谢!
2006-08-18 15:07
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用bdcwq在2006-8-18 17:57:27的发言:

**k是指向指针的指针
你的第二问题是&a[i]取的是a的地址,不是a[i] 呵呵 我自己猜的!!
到是第一个选项不明白a{p-a}这里用花括号什么意思?

是a[p-a],我改过来了,不好意思.

2006-08-18 20:45
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用yeshirow在2006-8-18 16:34:56的发言:

依我看, 樓主的迷惑在於 k 表示的是甚麽
如果 cout << k << endl; 輸出的是甚麽呢? 是 k 的值, 而不是 k 的地址(&k), 樓主的問題應該是在這裏

當在代碼中寫 k 時, 就是 k 的值, 這與一般變數沒有甚麽區別, 例如
int i; // 聲明
... i // 這裏指 i 的值
... &i // 這裏指 i 的地址
同樣 int *k
...k // k 的值
... &k // k 的地址

所以在輸出 **k 時,
k , k 的值 = j 的地址
*k = *(j 的地址) = j 的地址的值= i 的地址
**k = *(i 的地址) = i 的地址的值 = 100
--------------
輸出的當然是 100

我想先和前辈探讨一个问题,前辈认为i 的地址的值 = 100
可是我觉得定义时i=100,我觉得不是i的地址的值是100,我的理解是这样的,我举个例子:可能i占据了名为地址为234的内寸块,而这块内存块里面存放的是东西是100这个数值,不知道我理解有错吗?谢谢指教~~

[此贴子已经被作者于2006-8-18 21:12:58编辑过]

2006-08-18 20:49
快速回复:[求助]请教和指针有关的问题,真的有点搞糊涂了!
数据加载中...
 
   



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

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