| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1330 人关注过本帖
标题:[讨论]指针问题
只看楼主 加入收藏
lylucia
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-9-5
收藏
 问题点数:0 回复次数:18 
[讨论]指针问题

设有定义:int n=0; *p=&n; **q=&p;
A p=1
B *q=2
C q=p
D *p=5

希望知道的能把题目和答案分析清楚
欢迎大家解答!!!!!!

搜索更多相关主题的帖子: 指针 定义 int 
2007-09-09 16:45
jinxin3256
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-9-7
收藏
得分:0 
我认为是C,指向指针的指针

[此贴子已经被作者于2007-9-9 16:54:03编辑过]



代替leisure1980广告下: 群号45146331
2007-09-09 16:51
lylucia
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-9-5
收藏
得分:0 
但答案是D
你是怎么分析的?????

2007-09-09 18:47
devfhpgah
Rank: 1
来 自:江西
等 级:新手上路
帖 子:204
专家分:0
注 册:2007-8-16
收藏
得分:0 

答案C


A中p是地址只能存放八进制的地址数,所以是不可能!
B中*q也是存放地址的,只是用来存放p的地址!

D中更是不可能了,*p存放是内容不错,但p指向的是n,n的内容是0,怎么可能是5!


努力才会成功!
2007-09-09 19:35
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
LZ的问的是````4个答案哪个是正确的还是```4个答案``哪个是可以书写的``

如果是前者````个人认为没有答案``LS分析了ABD``我说一下C``

q=p```q是二级指针```p是一级``如果这个式子成立`=>*p==*q```但是我们的q是二级的指针``所以*q得到应该还是一个指

针``但是这里得到的是*p的内容```就矛盾了```

如果是后者``那么答案就是D了```这个简单``原因结合LS我分析的C答案可以知道```

我现在去调试以下``看看回是什么样```



女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-09-09 19:44
lylucia
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-9-5
收藏
得分:0 
谢谢了
又学了点东西

2007-09-09 19:45
lylucia
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-9-5
收藏
得分:0 
以下是引用死了都要C在2007-9-9 19:44:49的发言:
LZ的问的是````4个答案哪个是正确的还是```4个答案``哪个是可以书写的``

经过大家的分析,我了解了ABCD的正确与否,
至于哪个是可以书写的这个问题我不知道是什么意思????、
麻烦了!!!!!


2007-09-09 20:02
aoaoaoao
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-5-14
收藏
得分:0 
都是赋值表达式

惟有D可以
2007-09-09 20:10
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
回复:(lylucia)[讨论]指针问题

第一次测试代码:
#include<stdio.h>

int main()
{
int n=0,*p=&n,**q=&p;

p=1;
*q=2;
q=p;
*p=5;

printf("%d\n",*p);
printf("%d\n",*q);

getchar();
return 0;
}




编译不通过:

C:\Documents and Settings\Administrator\桌面\未命名1.cpp: In function `int main()':
C:\Documents and Settings\Administrator\桌面\未命名1.cpp:7: error: invalid conversion from `int' to `int*'

C:\Documents and Settings\Administrator\桌面\未命名1.cpp:8: error: invalid conversion from `int' to `int*'

C:\Documents and Settings\Administrator\桌面\未命名1.cpp:9: error: cannot convert `int*' to `int**' in assignment

第二次测试代码:

去掉 p=1;

编译不通过:

C:\Documents and Settings\Administrator\桌面\未命名1.cpp: In function `int main()':
C:\Documents and Settings\Administrator\桌面\未命名1.cpp:8: error: invalid conversion from `int' to `int*'

C:\Documents and Settings\Administrator\桌面\未命名1.cpp:9: error: cannot convert `int*' to `int**' in assignment

第三次测试代码:

去掉 *q=2;

编译不通过:

C:\Documents and Settings\Administrator\桌面\未命名1.cpp: In function `int main()':
C:\Documents and Settings\Administrator\桌面\未命名1.cpp:7: error: cannot convert `int*' to `int**' in assignment

第四次测试代码:

去掉 *q=2;

编译通过:

图片附件: 游客没有浏览图片的权限,请 登录注册


第五次测试代码:

去掉 *p=5; 留下 q=p;

编译不通过:

C:\Documents and Settings\Administrator\桌面\未命名1.cpp: In function `int main()':
C:\Documents and Settings\Administrator\桌面\未命名1.cpp:8: error: cannot convert `int*' to `int**' in assignment

第六次测试代码:

留下 *p=5; 改 printf("%d\n",*q); ----------> printf("%d\n",**q);

编译通过:
图片附件: 游客没有浏览图片的权限,请 登录注册


最后一次测试代码:

那4行就不要了``改 printf("%d\n",*q); ----------> printf("%d\n",**q);

编译通过:
图片附件: 游客没有浏览图片的权限,请 登录注册



所以可以知道:
在 int n=0,*p=&n,**q=&p; 中

1. p=1; *q=2; q=p; 是错误的``不能通过编译``
2. 2级指针指向一个地址得到的一级指针可以以整型输出```
3. 相应级别的指针只能存放相应级别的地址```


以上测试环境:DEV-C++4.9.9.2```





女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-09-09 20:24
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
强烈要求LS的把头像换掉,太难看了!!!

2007-09-09 20:53
快速回复:[讨论]指针问题
数据加载中...
 
   



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

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