a1239750460 发表于 2017-5-11 11:05:32

为什么char型的内存地址是乱码?

int a = 123;
        float b = 3.14;
        char c = 'C';
        unsigned long d = 19980505;
        std::string e = "I Like";

        std::cout << "a 的值是:" << a << std::endl;
        std::cout << "b 的值是:" << b << std::endl;
        std::cout << "c 的值是:" << c << std::endl;
        std::cout << "d 的值是:" << d << std::endl;
        std::cout << "e 的值是:" << e << std::endl;

int *aPrinter = &a;
        float *bPrinter = &b;
        char *cPrinter = &c;
        unsigned long *dPrinter = &d;
        std::string *ePrinter = &e;
        std::cout << "a 的内存地址是:" << aPrinter << std::endl;
        std::cout << "b 的内存地址是:" << bPrinter << std::endl;
        std::cout << "c 的内存地址是:" << cPrinter << std::endl;
        std::cout << "d 的内存地址是:" << dPrinter << std::endl;
        std::cout << "e 的内存地址是:" << ePrinter << std::endl;

朱绪东 发表于 2017-5-11 11:20:18

1.C/C++语法中输出字符串指针,就是输出字符串,也就是说输出一个char*的指针一定是输出一个字符串,而不会输出指针,其它的类型都不会这样,所以你把它转成void*就会输出地址。
2、你所说的string ss,它是一个string的对象,我刚才说了除了char*其它的都是输出指针,输出ss的地址,当然就是指针了。
页: [1]
查看完整版本: 为什么char型的内存地址是乱码?