C 程式的問題

時間 2022-03-08 17:30:27

1樓:

輸出是str指標的地址。若沒有(void *)則輸出它指向的字串string。你說得沒有錯,0x004260a4是指標str的「值」——其實就是它指向的字串的首地址,在你這裡就是字串string中的第一個字母s的地址;而地址0x0012ff7c中存放的是指標變數p——要知道任何一個變數都得有個「地方」存放啊!

2樓:t寒冬飛雪

str是一個指標型別,指標型別變數的值就是一個地址,或者說是一個表示地址的數。

cout輸出如果遇到char*型別的,會當作字串輸出,換句話說就會自動定址取內容,要想輸出它的本身的值,就要轉化為void*,這樣就直接輸出指標儲存的地址值了,而且是以16進位制數輸出的,輸出位數與計算機地址長度有關。

指標型別說得直白一點,其實就是一個容量和記憶體地址大小有關的整形變數,這個變數中儲存的數字,是一個記憶體中(或者其他裝置)的地址。所謂指標,只是告訴計算機如何使用這個數字,是把它當作地址還是當作普通的數字。

3樓:匿名使用者

首先,這個str是個指標,他指向一個地址,他本身的地址是0x0012ff7c,他指向的地址,也就是他的值,就是0x004260a4,意思是,比如說str的地址是1,他指向的地址是5,從5開始是一個字串,這個字串的值就是你問的,而他本身的地址是1.

這個void*是個強制轉換, 而void* 則是說 ,不清楚是什麼型別的指標,但是這是一個指標型的變數,指向的是一個地址。

4樓:小膽大俠

str是一個變數,變數本身就得有地址,0x0012ff7c就是它在記憶體中的位置,作為指標型別的變數,它就可以有值,它的值同樣是地址,0x004260a4就是他的值。

c語言程式問題,C語言程式問題?

1.在你打算學習c語言之前,你要下一個狠狠地決心.因為許多電腦愛好者在學習c語言的過程中,都會遇到困難,從而沒有堅持到最後.只有你下定狠狠地決心,才能學會c語言,才能學好c語言.2.要想學習好c語言,就要學會細心,耐心.c語言程式的編寫需要非常細心,因為一個標點符號的錯誤,可能導致程式的無法執行.3...

一個關於C語言的程式問題?C語言程式問題?

資料在記憶體中都是二進位制的,無符號的和有符號的資料,在記憶體中的表示是一樣的。在記憶體中資料的表示都是補碼,比如1在記憶體中表示為00000001,1在記憶體中的表示為11111111.不管你是用什麼有符號,還是無符號的,在記憶體中,資料都是這樣表示的。你定義了一個unsigned int a,只...

C 的程式問題Error expectedbefore int這是什麼原因造成的

int前出現了不規範的字元或者是使用不當的關鍵字 字元等 建議排查下出現錯誤地方的語句是否使用正確 比如在類的繼承中,虛基類,純虛類的關鍵字遺漏 少用等都會出現這種錯誤。std後面沒加分號的緣故 std後面沒加分號的緣故 你在仔細檢查一下 關於c 的一個問題 這個程式它提示我expected pri...