| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5590 人关注过本帖, 1 人收藏
标题:关于指针偏移量。
只看楼主 加入收藏
wy8722106
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-10-9
结帖率:100%
收藏(1)
已结贴  问题点数:3 回复次数:8 
关于指针偏移量。
#include "stdio.h"

char *c[]={
            "enter",
            "new",
            "point",
            "first"};
char **cp[]={c+3,c+2,c+1,c};
char ***cpp=cp;

main()
{
    printf("%s\n",**++cpp);
    printf("%s\n",*--*++cpp+3);
    printf("%s\n",*cpp[-2]);

    system("pause");

}

这个程序里“printf("%s\n",*cpp[-2]);” 中的负2,怎么理解?说是偏移量,怎么个偏移法?
大虾们,不好意思分不多了。呵呵!
搜索更多相关主题的帖子: 指针 偏移 
2010-12-06 17:35
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:3 
偏移是吧  指针的偏移是根据指针所指向的数据类型
的大小来确定的
有下面的这个公式   指针的偏移量=指针的当前值+n*sizeof(指针指向的数据类型)
减法和加法一样  就是把+换成-  
上面的那个cpp[-2] 就是相当于把cpp指针的值减去  2*sizeof(指针所指向的类型)
这里的cpp是三级指针   他指向的类型是指向char类型数据的指针的指针  所以sizeof(指针所指向的类型)
应该是4(一个指针在内存中站4个字节)

                                         
===========深入<----------------->浅出============
2010-12-06 18:08
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
收藏
得分:0 
太复杂了 看不懂啊,那这个输出为什么会是这样啊

我是初学者
2010-12-06 18:29
j109954048
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-12-6
收藏
得分:0 
新手学习 看不懂~~~~~~
2010-12-06 18:51
xingchi523
Rank: 2
等 级:论坛游民
帖 子:34
专家分:11
注 册:2010-11-6
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

我觉得画个内存图看起来就省事多了,再根据图移动指针比较好理解,cpp[-2]即向前移动
希望对你有用
2010-12-06 19:36
tfxanxing
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:82
专家分:165
注 册:2010-5-7
收藏
得分:0 
天哪,画了图的更看不懂,还是2楼的专业点!顶
2010-12-06 20:02
xingchi523
Rank: 2
等 级:论坛游民
帖 子:34
专家分:11
注 册:2010-11-6
收藏
得分:0 
画个内存图对指针移动比较易于观察,当然水平高了后心里想就行了
2010-12-06 20:20
xshy2051
Rank: 2
等 级:论坛游民
帖 子:27
专家分:33
注 册:2010-9-16
收藏
得分:0 
新手,看不懂!求指教…
2010-12-07 08:57
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
收藏
得分:0 
有人能解释下为什么结果是
point
er
first
么?

我是初学者
2010-12-07 09:21
快速回复:关于指针偏移量。
数据加载中...
 
   



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

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