淺析char 指針變量char *=p 這個(gè)語(yǔ)句的輸出問(wèn)題
學(xué)習(xí)指針的時(shí)候我一直有個(gè)疑惑,請(qǐng)看下面的代碼:
#include <iostream>
using std::cout;
void main()
{
int num=5;
int *nPtr=#
cout<<nPtr;//輸出指針的地址。但是會(huì)報(bào)錯(cuò)<<沒(méi)有直接輸出int *地址的功能
return ;
}
但是,將int 改成char 類型就不會(huì)報(bào)錯(cuò),可以輸出字符串。同樣是指針,這次為何沒(méi)有輸出地址(理應(yīng)輸出指針代表的地址,但是<<并沒(méi)有重載地址輸出的功能所以報(bào)錯(cuò))呢?
#include <iostream>
using std::cout;
void main()
{
char *nPtr="Address";
cout<<nPtr;//輸出字符串Address;
return ;
}
原來(lái),輸出流運(yùn)算符<<重載了輸出功能,可以自動(dòng)判斷類型,int直接輸出,char *就輸出所代表的字符串,如果要輸出地址,必須使用強(qiáng)制類型轉(zhuǎn)換函數(shù)static_cast轉(zhuǎn)換成十六進(jìn)制數(shù)字,其它類型的指針比如int *double *直接輸出會(huì)報(bào)錯(cuò)
#include <iostream>
using std::cout;
void main()
{
char *nPtr=“請(qǐng)問(wèn)我”;
cout<<nPtr<<"下個(gè)輸出是指針地址 "<<static_cast<void *>(nPtr);//語(yǔ)句會(huì)報(bào)錯(cuò),不能輸出指針。
return ;
}
以上這篇淺析char 指針變量char *=p 這個(gè)語(yǔ)句的輸出問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C語(yǔ)言面試常見(jiàn)考點(diǎn)排序總結(jié)
深處開(kāi)發(fā)崗,其實(shí)排序也是繞不開(kāi)的環(huán)節(jié),其中冒泡排序,選擇排序,插入排序,歸并排序,快速排序,堆排序也是我在秋招以來(lái)頻繁問(wèn)到的技術(shù)點(diǎn),今天我們來(lái)重點(diǎn)聊聊排序2021-11-11
VC使用TerminateProcess結(jié)束進(jìn)程實(shí)例
這篇文章主要介紹了VC使用TerminateProcess結(jié)束進(jìn)程的方法,實(shí)例演示了TerminateProcess結(jié)束進(jìn)程的具體實(shí)現(xiàn)過(guò)程,在進(jìn)行VC應(yīng)用程序開(kāi)發(fā)時(shí)非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-10-10
C++類成員構(gòu)造函數(shù)和析構(gòu)函數(shù)順序示例詳細(xì)講解
這篇文章主要介紹了C++類成員構(gòu)造和析構(gòu)順序示例,看了這個(gè)例子大家就可以明白c++構(gòu)造析構(gòu)的奧秘2013-11-11

