c++中,如果cout 或者cin char类型的数组名,指针,都会把字符串输出,而不是输出地址,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++中,如果cout 或者cin char类型的数组名,指针,都会把字符串输出,而不是输出地址,相关的知识,希望对你有一定的参考价值。

c++中,如果cout 或者cin char类型的数组名,指针,都会把字符串输出,而不是输出地址,那么对于string类型,和char类型一样吗?

对于char*或者char [] 会输出字符串
如果是string类型,如果你输出string本身,那么输出的是字符串
如果你输出的是string数组的数组名,那么输出的是地址。

比如
string a[2] = "111111", "22222";
如果cout>>a[0];
那么输出的就是 111111
如果用
cout << a;
那么输出的就是a的地址。追问

如果是string类型的一个指针,cout 指针,会输出地址?

追答

指针的话 会输出地址
除非是*p 才会输出字符串

参考技术A char*是字符串,最后面有'\0'结束标志,所以输出的是字符串,这个比较特别吧,string就跟这不一样了 参考技术B 是的追答

想输出地址用&就行了

在string类时加*输出字符串,不加输出地址

还要看你用string类定义时加没加[]

以上是关于c++中,如果cout 或者cin char类型的数组名,指针,都会把字符串输出,而不是输出地址,的主要内容,如果未能解决你的问题,请参考以下文章

c++中cin/cout如何输入输出字符串数组?

C++中 string类型数据的输入输出

C++中cin、cout的一些特殊用法

C++ 关于cin输入

C++中cin,cout是否效率不如scanf,printf

C++:通过 char* 获取字符串输入