| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1028 人关注过本帖
标题:求助c语言指针大神,谢谢
取消只看楼主 加入收藏
drasticy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-7-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
求助c语言指针大神,谢谢
char *a[]={"bi","ji","ben",NULL};
char **p;
for(p=a;*p!=NULL;p++)
{
printf("%s\n",*p);
}
这段代码是直接将bi ,ji,ben 打印输出,
指针数组存放的是指针,但指针保存的地址都是32位,占用4字节,而char是1个字节。p++时只是增加一个字节的地址,那指针是如何实现从bi到ji的打印输出的呢?
求大神,跪谢
搜索更多相关主题的帖子: c语言 如何 
2014-07-27 00:14
drasticy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-7-27
收藏
得分:0 
回复 3 楼 pauljames
图片附件: 游客没有浏览图片的权限,请 登录注册

出来的结果指针p的确是每次增加4个地址,那指针前面定义的char是什么意思?起始地址为1638200,如果输出应该只输出bi中的b吧,在指针再加1,就是1638204,这个地址里是ji中的j吧
2014-07-27 10:41
drasticy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-7-27
收藏
得分:0 
回复 2 楼 embed_xuel
图片附件: 游客没有浏览图片的权限,请 登录注册

出来的结果指针p的确是每次增加4个地址,那指针前面定义的char是什么意思?起始地址为1638200,如果输出应该只输出bi中的b吧,在指针再加1,就是1638204,这个地址里是ji中的j吧
2014-07-27 10:42
drasticy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-7-27
收藏
得分:0 
回复 6 楼 ditg
是啊,对于单个的指针还行,到了指针型指针就不行了
2014-07-27 12:22
drasticy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-7-27
收藏
得分:0 
回复 8 楼 ditg
嗯,这是个方法,但是对于这种定义的指针数组。里面存放的是指针,那像程序中的bi,ji,ben是以什么形式存放?p里面存放的是指针,解析的时候应该是地址啊,为何直接是bi,ji,ben?
2014-07-27 22:25
drasticy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-7-27
收藏
得分:0 
回复 9 楼 午夜小学徒
恩恩,有理解给我说说啊
2014-07-27 22:26
drasticy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-7-27
收藏
得分:0 
回复 12 楼 ditg
我现在大体懂了谢谢,%s就直接把字符串给打印出来了,直接完成了开始地址,及以后所有地址上字符的显示
2014-07-27 23:49
drasticy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-7-27
收藏
得分:0 
回复 12 楼 ditg
大神你好,看来你深有研究啊
2014-07-27 23:55
drasticy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-7-27
收藏
得分:0 
回复 12 楼 ditg
如果是printf("%d\n",argv[0]);那么输出的是谁的地址?
2014-07-28 00:24
drasticy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-7-27
收藏
得分:0 
回复 10 楼 drasticy
是啊,但是如果是把%s换成%d呢
2014-08-03 21:39
快速回复:求助c语言指针大神,谢谢
数据加载中...
 
   



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

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