| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 720 人关注过本帖
标题:字符串指针中文
只看楼主 加入收藏
neiosun
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-12-21
收藏
 问题点数:0 回复次数:6 
字符串指针中文
刚刚发现在用VC++的时候,如果是涉及字符,比如如下程序

#include<iostream>
using namespace std;
int main()
{
   char a;
   char *b;
   a='h';
   b=&a;
   cout<<b<<endl;
   return 0;
}

本来屏幕应该输出的是字符h的地址,结果是 “h烫汤 ”, 后面还跟着一个上下的箭头。 有没有人帮忙解释一下是怎么回事。谢谢了   
搜索更多相关主题的帖子: 中文 字符 指针 
2010-03-05 14:22
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
你这样写,实际应该输出一个字符串,所以是从h所在位置开始输出,直到遇到'\0'才会结束.

★★★★★为人民服务★★★★★
2010-03-05 15:15
xiaodong5800
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-3-5
收藏
得分:0 
#include<iostream>
using namespace std;
int main()
{
   char a;
   char *b;
   a='h';
   b=a;
   cout<<*b<<endl;
   return 0;
}
应该是这样吧
2010-03-05 17:48
neiosun
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-12-21
收藏
得分:0 
请问如果是想输出这个字符串的地址,要怎么改写程序呢?

xiaodong5800的程序是输出b这个指针指向的内容,而且应该是b=&a;
2010-03-06 02:17
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 

cout<<(void *)b<<endl;  //直接输出a的地址 或者:cout<<(void *)&a<<endl;
cout<<&b<<endl;  //直接输出b的地址

★★★★★为人民服务★★★★★
2010-03-06 08:33
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
收藏
得分:0 
若给b提供一个char*的指针,则将指向一个字符串。若要显示字符串的地址必须用强制类型转换
cout<<(int*) b
2010-03-06 13:10
neiosun
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-12-21
收藏
得分:0 
谢谢大家,终于搞清楚了。
2010-03-09 04:46
快速回复:字符串指针中文
数据加载中...
 
   



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

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