《cprimer plus》,為什麼可以給指標分配字串?name為什麼是地址

2022-10-03 01:25:20 字數 2075 閱讀 8791

1樓:最大的寶寶

main中的name指標得到了getname函式的返回值,這個值是先前輸入的字串的首地址。

如果cout << name,那麼輸出name指向的字串。把它強制轉換為int *後,就可以輸出name本身的值,也即字串的首地址。那麼為什麼有這種看起來非常智慧的處理呢?

因為《是一個過載的運算子(過載是c++的重要內容,如果此刻還沒學到可以暫時不理會),也就是說《是一個過載的函式,根據函式引數的不同,編譯器會呼叫不同的過載函式。比如

const char *s = "hello";

cout << (void *)s << endl;

cout << (int *)s << endl;

如上**都會呼叫以下過載函式,輸出的結果自然是相同的:

basic_ostream& __clr_or_this_call operator<<(const void *_val)

而const char *s = "hello";

cout << s;

則會呼叫以下過載函式輸出字串的值:

templateinline

basic_ostream& operator<<(basic_ostream& _ostr,const char *_val)

2樓:匿名使用者

name是指標型變數,存放的是地址,因此用name接收getname()返回的地址

(int *)name是強制將name這個地址(原來是指向字元型單元的地址)改換成指向整型資料的地址,並不是*name取地址這種用法,cout在這裡將會將name指向的連續4個字元單元的值合併轉換成一個int型資料進行輸出。

我打算買《c++ primer plus 第六版》,它用的是什麼編譯器?第五版呢?

3樓:匿名使用者

這本書第六版寫好之前還沒有任何編譯器完全支援c++11全部特徵。書上的部分例子(c++11相關)使用visual c++ 2010編譯器(visual studio 2010)。現在的話樓主可以考慮安裝gcc4.

8編譯器,這樣某些章節的內容可以編譯驗證。第六版就是比第五版增加了c++11的內容(很少),對於第五版使用比較新的編譯器即可。

4樓:匿名使用者

個人覺得第五版比較好,編譯器的話,裝個visual studio就可以了

5樓:匿名使用者

那本書半年前我買過...936面...說得比較詳細,偶爾有個別錯別字 和 錯的個別**命令

內容偶爾會與c語言對比,如果沒有學過c的話,有點不明白..

比較專業,初學的,不建議看.. 一大堆專業詞.,第一章就是廢話,2-8是基本的知識,內容有基本資料型別,陣列,字串陣列,指標,io輸入輸出,關係表示式,分支語句邏輯運算子,函式,函式的引數這個也是重點提要,函式模板,函式的過載,第9章就是記憶體模組和名稱空間,也就是標頭檔案什麼.

h什麼的 。10-15關於「類「這東西,16章就是string類,17章就是更深入的 io輸入輸出,18章就是c++11的新內容..

後面的100多面 就是 參考之類的,什麼附錄abcd什麼的

6樓:鍵盤雀躍

k&b,這個才是經典!

7樓:吾嘯

都不好,《c++ primer 》好。

求大神指教...執行這些**,為什麼顯示的結果沒有字串,是c++primer plus 第四版222頁上面的程式清單8.8

8樓:匿名使用者

char * left(const char * str, int n)

{if(n<10)

n=0;

有了這一句,n始終為0,所以p僅僅放了一個'\0',表示字串為空,所以打不出來。把這一句刪掉就行了

9樓:匿名使用者

if(n<10)

n=0;

這兒你可能打錯了,該為:

if(n>10)

n=0;

寫這句**的原因時,如果不小心傳入的n大了,可以返回一個空字串,不會造成陣列越界。

為什麼偏導函式連續可推出函式本,為什麼可微推不出偏導數連續可以幾何意義解釋嗎

因為可以證明 如果一個函式的偏導函式連續則該函式可微 所以偏導函式連續是函式可微的充分條件。為什麼可微推不出偏導數連續?可以幾何意 釋嗎?10 可微只能推出在該點的偏導數存在,推不出連續,但是可偏導數連續可以推出可微。因為可微的點周圍可能偏導數不存在,如下式,該函式在 0,0 處可微,偏導數都為0,...

古代可殺富濟貧,為什麼

您好古代bai也是有法律的,也不du能殺富濟貧zhi劫富濟貧擾亂dao了正常的社會秩序 不利於統治階專級的利益 在古代封屬建社會中所謂的富者不是官紳就是商賈他們都有所聯絡 商賈掙來的錢有相當一大部分都會去賄賂官紳而官紳呢 就會實行形式上的保護主義 可以說在古代的封建社會中 朝中重臣文武百官的俸祿和衣...

為什麼張伯倫可以得100分,為什麼張伯倫可以得100分

nba第一中鋒 張伯倫 我覺得樓主要選 芒果記憶 試用期 一級 啊!看看上面那些人就是複製一下!而且根本和你提出的問題不對頭嘛!你是問為什麼他可以拿100分!我希望摟住一定要選他啊!他回答的很好!原來的防守沒有這麼積極,崇尚進攻,不過確實很難想像,當時還沒有3分球啊!那時都是些垃圾人再打球。根本不會...