注册 登录
编程论坛 C++教室

字符串指针中文

neiosun 发布于 2010-03-05 14:22, 720 次点击
刚刚发现在用VC++的时候,如果是涉及字符,比如如下程序

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

本来屏幕应该输出的是字符h的地址,结果是 “h烫汤 ”, 后面还跟着一个上下的箭头。 有没有人帮忙解释一下是怎么回事。谢谢了   
6 回复
#2
cnfarer2010-03-05 15:15
你这样写,实际应该输出一个字符串,所以是从h所在位置开始输出,直到遇到'\0'才会结束.
#3
xiaodong58002010-03-05 17:48
#include<iostream>
using namespace std;
int main()
{
   char a;
   char *b;
   a='h';
   b=a;
   cout<<*b<<endl;
   return 0;
}
应该是这样吧
#4
neiosun2010-03-06 02:17
请问如果是想输出这个字符串的地址,要怎么改写程序呢?

xiaodong5800的程序是输出b这个指针指向的内容,而且应该是b=&a;
#5
cnfarer2010-03-06 08:33

cout<<(void *)b<<endl;  //直接输出a的地址 或者:cout<<(void *)&a<<endl;
cout<<&b<<endl;  //直接输出b的地址
#6
最近不在2010-03-06 13:10
若给b提供一个char*的指针,则将指向一个字符串。若要显示字符串的地址必须用强制类型转换
cout<<(int*) b
#7
neiosun2010-03-09 04:46
谢谢大家,终于搞清楚了。
1