| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 417 人关注过本帖
标题:这个程序段该怎么理解??
只看楼主 加入收藏
赵贺辉
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:28
专家分:19
注 册:2011-3-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
这个程序段该怎么理解??
static int a[3]={1,2,3};
int **ptr,*p;
p=a;
ptr=&p;
(ptr[0]++)[1]+=3;
printf("%d,%d,%d\n",**ptr,*p,a[0]);
尤其是红色标注的部分
2011-03-25 21:30
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
还没学完指针。。。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-25 21:42
赵贺辉
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:28
专家分:19
注 册:2011-3-18
收藏
得分:0 
回复 2楼 ansic
呵呵,谢谢
2011-03-25 21:44
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:2 
以下是引用赵贺辉在2011-3-25 21:44:11的发言:

呵呵,谢谢

⊙﹏⊙b汗, 才看到链表, 还不知道两个星号啥意思呢!

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-25 21:48
我是传奇
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:88
专家分:109
注 册:2011-3-21
收藏
得分:4 
int **ptr,*p//*ptr是指针, **ptr指针的指针
,(ptr[0]++)[1]+=3;
ptr[0]++是一维数组加1,[1]+=3;是,[1]=[1]+3
2011-03-25 21:58
赵贺辉
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:28
专家分:19
注 册:2011-3-18
收藏
得分:0 
以下是引用我是传奇在2011-3-25 21:58:17的发言:

int **ptr,*p//*ptr是指针, **ptr指针的指针
,(ptr[0]++)[1]+=3;
ptr[0]++是一维数组加1,[1]+=3;是,[1]=[1]+3
ptr[0]++是一维数组加1,[1]+=3;是,[1]=[1]+3
这一句不是太理解,可不可以再详细点??
2011-03-25 22:08
chenwei435
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:322
专家分:1611
注 册:2010-11-28
收藏
得分:12 
static int a[3]={1,2,3};
int **ptr,*p;
p=a;
ptr=&p;
(ptr[0]++)[1]+=3;/*先看ptr[0],因为ptr指向p,所以ptr[0]就是p, 所以(ptr[0]++)就相当于(p++),原表达式相当于(p++)[1]+=3,因为p++是后加一,所以就是p[1]+=3后p再自加一,p[1]+=3推出a[1]=5,而p已经加了一,所以指向a[1],因此**ptr,*p输出的都是5,如果你没弄明白的话,那你应该再去看看书啦*/
printf("%d,%d,%d\n",**ptr,*p,a[0]);
2011-03-25 22:11
shuimu10
Rank: 2
等 级:论坛游民
帖 子:53
专家分:48
注 册:2010-11-19
收藏
得分:2 
ptr=&p;可认为是*ptr=p;那么**ptr=*p;ptr[0]的意思是*(ptr+0) 数组的下标就是按这样操作的
2011-03-25 23:08
快速回复:这个程序段该怎么理解??
数据加载中...
 
   



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

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