| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1056 人关注过本帖
标题:[求助]指针与数组字符串
只看楼主 加入收藏
rejoice007
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-4-21
收藏
 问题点数:0 回复次数:10 
[求助]指针与数组字符串

1.如何声明及定义指针字符串,及指针数组字符串.

2.并且在函数中如何调用.
谢谢啦.

搜索更多相关主题的帖子: 指针 字符 定义 函数 
2006-06-20 21:16
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 

#include<stdio.h>

void disp(char **p,int n)
{
int i;
printf("\nnow we are in disp()...\n");
for(i=0;i<n;i++)
puts(*p++);
}

main()
{
char *p1="一二三四五";
char *p2="上山打老虎";
char *pp[2];
printf("now we are in main()...\n");
puts(p1);puts(p2);
pp[0]=p1;
pp[1]=p2;
disp(pp,2);
}


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-20 21:58
钱的马甲
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-6-21
收藏
得分:0 
机器要给他们分个房间,字符串屁股后面总要带个××,指针总要赖在某个房间门口。
2006-06-21 14:59
rejoice007
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-4-21
收藏
得分:0 

解释的不够清楚.能解释更清晰一些吗?谢谢啦.

2006-06-21 20:14
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(rejoice007)解释的不够清楚.能解释更清晰一些...
以下是引用rejoice007在2006-6-21 20:14:59的发言:

解释的不够清楚.能解释更清晰一些吗?谢谢啦.

看书去!


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-21 20:40
mikeknight
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-6-20
收藏
得分:0 

为什么打印字符串时 puts(*p++)而不是puts(*(*p++)) 按逻辑来讲 这样只是打印出了字符串的地址
而且既然是指针字符数组,那么pp[0]=&p1;才对嘛

2006-06-21 20:48
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(mikeknight)为什么打印字符串时 puts(*p++)而...
以下是引用mikeknight在2006-6-21 20:48:34的发言:

为什么打印字符串时 puts(*p++)而不是puts(*(*p++)) 按逻辑来讲 这样只是打印出了字符串的地址而且既然是指针字符数组,那么pp[0]=&p1;才对嘛

先认真看书去,现在任怎么解释对你都是多余,因为你的“逻辑”实在太奇怪了。

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-21 21:04
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-21 22:49
langzi546
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-6-19
收藏
得分:0 

#include<stdio.h>

void disp(char **p,int n)
{
int i;
printf("\nnow we are in disp()...\n");
for(i=0;i<n;i++)
puts(*p++);
}

main()
{
char *p1="一二三四五";
char *p2="上山打老虎";
char *pp[2];
printf("now we are in main()...\n");
puts(p1);puts(p2);
pp[0]=p1;
pp[1]=p2;
disp(pp,2);
}
我的理解:*p1,*p2就是指针字符串,指向的分别是"一二三四五"和"上山打老虎",两个字符串并在一起就成了字符串数组,所以指向字符串数组就要用两个星号“**”,在“for(i=0;i<n;i++)puts(*p++);”中,i=0时字符串数组指针指向第一个字符串“一二三四五”,i=1时指向“上山打老虎”。
个人理解,不知正确否,请指点。

2006-06-22 19:09
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-22 20:47
快速回复:[求助]指针与数组字符串
数据加载中...
 
   



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

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