| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1166 人关注过本帖
标题:初学指针
只看楼主 加入收藏
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-30 20:25
ww84020209
Rank: 1
等 级:新手上路
帖 子:190
专家分:0
注 册:2006-8-21
收藏
得分:0 
以下是引用song4在2006-8-30 18:54:16的发言:

我看的时候忘个括号
那就这样理解行不.
(*(void**))ptr
1.构造一个 void **temp;
2.用一个*来解析它为*temp变成void* 类型,整个式子变成(void*)ptr
3.然后用ptr来初始化

(*(void**))ptr
根本连编译都通不过!


2006-08-30 20:41
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

是啊,做原算总要有对象吧.
你可以这样:
int i=10;
int q=*(&i);

但是你似乎不可以这样:
int i =10;
int q=(*&)i;


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-08-30 21:34
jerry820726
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2006-3-17
收藏
得分:0 

指针是个复杂的东西,看的都头痛,看了半天楞是没看明白这东西
int * (* (*fp1) (int) ) [10]

[此贴子已经被作者于2006-9-6 9:10:07编辑过]


2006-09-06 09:09
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
以下是引用穆扬在2006-8-30 20:25:09的发言:
“构造一个 void **temp;”?
有依据么?


这里产生个无名对象啊,我才看到这个帖


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-09-06 09:28
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
以下是引用ww84020209在2006-8-30 20:41:31的发言:

(*(void**))ptr
根本连编译都通不过!

确实很奇怪
但是那么理解没什么错啊,就是括号多余


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-09-06 09:33
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
收藏
得分:0 
完全不理解

2006-09-06 11:17
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
======引用复活=======
这个要从里向外看.
首先明确被定义的是pf1
前面有*
说明是指针
再看 *(*fp1)(int)
()比*优先级高
所以fp1这个指针指向函数(函数的形参是int类型)
外面的*表示函数返回值是指针
这个指针的类型是 int * (*)[10];
[]优先级高所以这个指针指向数组
数组有10个元素
每个元素都是int *

[此贴子已经被作者于2006-9-7 9:59:33编辑过]


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-09-06 22:30
快速回复:初学指针
数据加载中...
 
   



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

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