| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 449 人关注过本帖
标题:一个很难的问题
只看楼主 加入收藏
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
 问题点数:0 回复次数:5 
一个很难的问题
int *p[10];//说明一个指针数组,他有10个元素,每个元素都是一个指针(指向int型)
int(*p)[10];//说明一个指针,它指向一个(装有10个int类型的)一个单元。

我仅仅知道上面的描述:(仅仅是死记住了,并没真正理解)
但是不好理解:
我想如果从
()圆括号 * 星号 []中括号
结合律的角度如果分析的话,比较好理解:
但我分析不下去:
请教各位帮忙:
2007-03-10 12:00
zhouweike
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-9-23
收藏
得分:0 

看下面一个程序,a为常指针,把p当成一个指向指针的指针就行了.
运行一下这个你就会明白了
# include <stdio.h>
void main ( )
{ int a[10]={7,8,6,5,4,32};
int (*p)[10];
int i;
p=&a;
for(i=0;i<10;i++)
{ printf("a[%d]=%d\n",i,a[i]);
printf("(*p)[%d]=%d\n",i,(*p)[i]);
}
}


2007-03-10 16:07
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
得分:0 
谢谢:
我还是不明白;
我想这个问题最好可能是从
()圆括号 * 星号 []中括号
结合律的角度分析
最为直观!
2007-03-10 17:46
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 

“右左法则” P最先与谁结合那么P就是什么*p[],P是各数组;(*p)[]P是个指针,更多的情况你可以看《C专家编程》那里说得很详细。

2007-03-10 19:05
boyyang4894
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-2-13
收藏
得分:0 


int *p[4];
由于[]比*优先级高,所以p先与[4]结合,形成p[4]形式,这显然是数组形式,它有四个元素。然后再与p前面的“*”结合,“*”表示此数组是指针类型的,每个元素都是指针并且每一个指针指向int型变量。

int(*p)[4]
由于()使得“*”先与p结合形成指针,这个指针再指向int型的数组,并且该数组有四个int型元素;

2007-03-10 22:34
dlcdavid
Rank: 3Rank: 3
来 自:成都
等 级:新手上路
威 望:6
帖 子:193
专家分:0
注 册:2005-12-23
收藏
得分:0 
int *p[10];
//可以这样写,int* p[10]
//他的元素类型是int*也就是指向int的指针
//p[10]就表明这个数组可以存放10个这个类型的元素

int(*p)[10];
//首先把*p用括弧括起来声明一个指针p
//该指针指向含有10个int型元素的数组.

[此贴子已经被作者于2007-3-10 23:43:01编辑过]


为了C++,我放弃了课本
为了高考,我又放弃了C++
现在而今眼目下,我能做什么?www.
2007-03-10 23:41
快速回复:一个很难的问题
数据加载中...
 
   



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

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