c++指针的问题,

来源:百度知道 编辑:UC知道 时间:2024/05/26 14:14:33
#include<iostream.h>
int main()
{char *s="nihao";
cout<<s;
}

s 应该指上n的地址 cout<<s时应该输出n
但是结果确实 nihao

菜鸟请教

楼上正解,你要"nihao"的首地址的话可以这样:

cout << static_cast<void*>(s);

因为cout<<这东西已经被重载过了.

字符串指针变量是指向字符串的指针变量,用字符串指针变量处理字符串时可将字符串直接赋给字符串指针变量,并用指针变量直接输出字符串,但不能输入字符串。也就是说你可以直接写s="nihao"

Neptumond牛人
对C++的认识相当深入啊

#include "iostream.h"
int main()
{
char *s="nihao";
cout<<s<<endl;
cout<<*s<<endl;
}

给你个程序,上机编译通过后再调试理解应该不是很困难,使用cout的语法为cout<<(字符串,变量,常量)
字符串是一个字符型数组,每个数组元素相当一个字符变量.由于指针变量s
存储了字符串"nihao"的首地址,在输出s和*s的时候,情况就不同了,cout语句将s中存储的字符串首地址以及该地址以后的字符一次性输出(直到碰上字符串结束标识符'\0'),*s表示指针变量s所指的具体数值而不是地址,也就是说*s等价于字符'n'.