求助与指针有关的问题

xiaokantianshang 2011-09-15 05:52:07
class UDSIK
{
char *crow[100];
int nrow;
public:
UDSIK(void)
{
nrow=0;
}
void read(void);
void write(char *pstr);
};
void UDISK::read(void)
{
int i=0;
for(i=0;i<nrow;i++)
{
cout<<crow[i]<<endl;
}
}
void UDISK::write(char *pstr)
{
crow[nrow]=pstr; //这里的pstr 是不是地址 ,crow[norw]是否为地址
nrow++;
}
下面的就不写了 问题就是关于上面的 我觉得那是 地址 可是最后调试 不是地址 请问这是什么原因 究竟是不是地址
...全文
126 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lee_鹿游原 2011-09-15
  • 打赏
  • 举报
回复
学习一下
wangluoqingfeng 2011-09-15
  • 打赏
  • 举报
回复
是楼主理解错了,库中的cout会智能的分辨所要输出变量的类型,例如:
int main()
{
char *p="我是常量字符串指针";
cout<<p<<endl;
return 0;
}
p是一个指针,也就是地址,但是cout输出的是它里面的内容
碎炎 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xiaokantianshang 的回复:]
crow[nrow] 定义的是 char* 为什么不是地址
如果 是地址 为什么输出的时候 cout<<crow[i] <<endl; 又不是地址
[/Quote]
cout的<<操作符假如参数为char* 是按照c风格字符串输出的 你强转为void*就行了
xiaokantianshang 2011-09-15
  • 打赏
  • 举报
回复
请同学测试出来了 本没来是地址 不过 是在C++中默认的输出
xiaokantianshang 2011-09-15
  • 打赏
  • 举报
回复
crow[nrow] 定义的是 char* 为什么不是地址
如果 是地址 为什么输出的时候 cout<<crow[i] <<endl; 又不是地址
xiaokantianshang 2011-09-15
  • 打赏
  • 举报
回复
用主函数
int main()
{
UDISK U1;
U1.write("写入的1");
U1.write("写入的2");

U1.read();
return 0;
}
worldy 2011-09-15
  • 打赏
  • 举报
回复
都是地址
Satansk 2011-09-15
  • 打赏
  • 举报
回复
楼主, pstr 是 char* 类型, 意思是指向C 风格字符串的指针,

crow[nrow] = pstr // 读字符串进入 字符串数组 crow[nrow]

crow[nrow] 是字符串数组。
楼主明白了吗?
飞天御剑流 2011-09-15
  • 打赏
  • 举报
回复
作为指针形参,无论传进来的东西本来是啥,都视为地址。
碎炎 2011-09-15
  • 打赏
  • 举报
回复
crow[nrow]=pstr
两个都是char*
xiaokantianshang 2011-09-15
  • 打赏
  • 举报
回复
在线 坐等 求解

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧