程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 關於char 指針變量char *=p;這個語句的輸出問題,指針char

關於char 指針變量char *=p;這個語句的輸出問題,指針char

編輯:C++入門知識

關於char 指針變量char *=p;這個語句的輸出問題,指針char


        學習指針的時候我一直有個疑惑,請看下面的代碼:

#include <iostream>
using std::cout;
void main()
{
      int num=5;
      int *nPtr=&num;
      cout<<nPtr;//輸出指針的地址。但是會報錯<<沒有直接輸出int *地址的功能
      return ;


}

但是,將int 改成char 類型就不會報錯,可以輸出字符串。同樣是指針,這次為何沒有輸出地址(理應輸出指針代表的地址,但是<<並沒有重載地址輸出的功能所以報錯)呢?

#include <iostream>
using std::cout;
void main()
{
      
      char  *nPtr="Address";
      cout<<nPtr;//輸出字符串Address;
      return ;


}

原來,輸出流運算符<<重載了輸出功能,可以自動判斷類型,int直接輸出,char *就輸出所代表的字符串,如果要輸出地址,必須使用強制類型轉換函數static_cast轉換成十六進制數字,其它類型的指針比如int *double *直接輸出會報錯

#include <iostream>
using std::cout;
void main()
{
      
      char *nPtr=“請問我”;
      cout<<nPtr<<"下個輸出是指針地址    "<<static_cast<void *>(nPtr);//語句會報錯,不能輸出指針。
      return ;


}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved