- 此问题在此处已有答案**:
cout << with char* argument prints string, not pointer value(6个答案)
Why does cout print char arrays differently from other arrays?(4个答案)
How does std::cout work with char pointers?(1个答案)
3天前关闭。
我不明白为什么cout打印变量str的DATA。str不包含第一个字符的内存地址?DATA是什么意思?
#include<bits/stdc++.h>
using namespace std;
int main()
{
char str[7]=”DATA”;
cout << str[2]<<” “<<str;
return 0;
}
打印T数据。
谢谢你的帮助
2条答案
按热度按时间gpfsuwkq1#
operator<<
有const char*
的重载,该重载打印字符,直到遇到空终止字符。并且char[]
数组衰减为指向其第一个元素的char*
指针。所以,当我们打印
str[2]
时,它只打印单个字符T
,但当我们打印str
时,它打印所有字符。nnsrf1az2#
str[2]
是一个单独的char
,T
,如您所见。另一方面,
str
是char*
(读作:指针指向char
),cout
将把它打印为c字符串-即打印所有字符,直到到达空字符(\0
),类似于printf
的操作。