c++ 显示char [duplicate]类型数组变量的值时打印DATA

gfttwv5a  于 2023-01-18  发布在  其他
关注(0)|答案(2)|浏览(160)
    • 此问题在此处已有答案**:

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数据。
谢谢你的帮助

gpfsuwkq

gpfsuwkq1#

operator<<const char*的重载,该重载打印字符,直到遇到空终止字符。并且char[]数组衰减为指向其第一个元素的char*指针。
所以,当我们打印str[2]时,它只打印单个字符T,但当我们打印str时,它打印所有字符。

nnsrf1az

nnsrf1az2#

str[2]是一个单独的charT,如您所见。
另一方面,strchar*(读作:指针指向char),cout将把它打印为c字符串-即打印所有字符,直到到达空字符(\0),类似于printf的操作。

cout << str[2] << " " << (void* ) str;

相关问题