关键词搜索

源码搜索 ×
×

为什么“cout << &c << endl;”这个语句有问题?

发布2013-05-06浏览9352次

详情内容

     先看程序:

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. char c = 'A';
  6. cout << &c << endl;
  7. return 0;
  8. }
    结果为乱码,为什么呢? 因为cout将&c当成了char *形式了,进而认为输出一个字符串,验证如下:

  1. int main()
  2. {
  3. char c = 'A';
  4. cout << &c << endl;
  5. printf("%s\n", &c);
  6. return 0;
  7. }
    可以看到,产生的乱码是相同的,那么如何才能正确地输出c的地址呢?见下:

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. char c = 'A';
  6. printf("%p\n", &c);
  7. cout << (void *)&c << endl;
  8. return 0;
  9. }
    结果为:

0012FF7F
0012FF7F





相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载