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

#include <iostream>
#include <string>
using namespace std;

void print_char(char* array[],int len);

void main(void)
{

char *a[]={"abc","cde","fgh"}; //字符指针数组按指针的定义,a不是指向"abc"的首地址吗?
char* *b=a;
cout<<*b<<"|"<<*(b+1)<<"|"<<*(b+2)<<endl;
//不明白为何输出的不是"abc","cde","fgh"的地址?即为何指向指针的指针为何输出的不是一个指针?反而是一个字符串。


char* test[]={"abc","cde","fgh"};
int num=sizeof(test)/sizeof(char*);
print_char(test,num);
cin.get();

}

void print_char(char* array[],int len
{
for(int i=0;i<len;i++)
{
cout<<*array++<<endl;
}
}

[此贴子已经被作者于2006-10-26 17:57:34编辑过]

搜索更多相关主题的帖子: 字符 指针 
2006-10-26 17:32
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 

编译器是个很智能的东西
就像
char p='a';
cout<<p<<endl;不会输出这个指针的内容(一个地址)而输出这个内容的内容
同样,这个情况和我说的只是都差一个*,所以是一样的原理
你把char*看成一个基本的变量试下


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-10-26 18:32
ylxhcm
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-10-26
收藏
得分:0 
这样看是可以
问题是从字面上理解指向指针的指针解引用,出来的是一个字符?
2006-10-26 18:41
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
以下是引用ylxhcm在2006-10-26 18:41:44的发言:
这样看是可以
问题是从字面上理解指向指针的指针解引用,出来的是一个字符

请你说说这个是什么

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-10-26 19:20
majia775
Rank: 1
等 级:新手上路
威 望:2
帖 子:94
专家分:0
注 册:2006-9-11
收藏
得分:0 
[CODE]char *a[]={"abc","cde","fgh"}; //字符指针数组按指针的定义,a不是指向"abc"的首地址吗?
等于
a[0]="abc";
a[1]="cde";
a[2]="fgh";
char *a[3]里面的每个元素都是一个char指针变量,每个char指针变量都可以给他一个字符串.[/CODE]

我不是随便的人,我随便起来不是人.... http://majia775.
2006-10-26 22:30
幽园香客
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:231
专家分:142
注 册:2006-2-27
收藏
得分:0 

如果输出地址的话可以这样:
cout<<p<<"|"<<p+1<<"|"<<p+2<<endl; //输出地址
cout<<*p<<"|"<<*(p+1)<<"|"<<*(p+2)<<endl; //输出字符串
原因是:cout函数本身就是显示指定的地址空间的值。


做个有用的人!
2006-10-29 10:41
快速回复:[求助]C++中字符指针数组如何理解
数据加载中...
 
   



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

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