[問題] char* 在記憶體裡是長什麼樣子?
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
指標不是都是在記憶體裡嗎?
那printf出來的東西,不是都是一堆數字?
那字串是怎麼放到記憶體裡的?
例如"一二三四五六七八",用char*指定之後,
在記憶體是長什麼樣子呀?
還是他是像間接定址一樣,存了兩種東西,
一種是本來的資料,另一種是資料的位址?
不太能理解,為什麼要用char做指標,而不是用int之類的。
自己的理解是,文字怎麼能夠做指標?
記憶體裡不都是數字和abc...,應該沒有其他語系的代號吧?
字串也能用指標的原因是什麼?
是為了方便提取其中的資料嗎?
一直用這玩意,但是一直有疑惑,
與其找到指標為了什麼存在,
或是指標的概念是為什麼建立的,
比較想知道指標最常應用的地方..。
到現在不是很會應用操弄這個機制...。
不知道怎麼表達切確的疑問,不明之處還望指教!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.224.71.13
→
10/26 12:44, , 1F
10/26 12:44, 1F
→
10/26 12:44, , 2F
10/26 12:44, 2F
推
10/26 12:44, , 3F
10/26 12:44, 3F
→
10/26 12:48, , 4F
10/26 12:48, 4F
→
10/26 12:49, , 5F
10/26 12:49, 5F
推
10/26 12:51, , 6F
10/26 12:51, 6F
推
10/26 12:51, , 7F
10/26 12:51, 7F
→
10/26 12:52, , 8F
10/26 12:52, 8F
→
10/26 12:53, , 9F
10/26 12:53, 9F
也就是說,int*和char*是一樣的,只是規則限制它們必須是不一樣的。對嗎?
int我還能理解,可是char就不太能理解了...。
※ 編輯: mabus 來自: 125.224.71.13 (10/26 13:03)
推
10/26 12:57, , 10F
10/26 12:57, 10F
→
10/26 13:02, , 11F
10/26 13:02, 11F
那int *s = "abcde";是不允許的,是因為已經分成int和char兩種規則了,對嗎?
但是它們是一樣的東西,對嗎?
※ 編輯: mabus 來自: 125.224.71.13 (10/26 13:07)
→
10/26 13:04, , 12F
10/26 13:04, 12F
→
10/26 13:05, , 13F
10/26 13:05, 13F
→
10/26 13:13, , 14F
10/26 13:13, 14F
→
10/26 13:13, , 15F
10/26 13:13, 15F
推
10/26 13:14, , 16F
10/26 13:14, 16F
推
10/26 13:48, , 17F
10/26 13:48, 17F
→
10/26 13:49, , 18F
10/26 13:49, 18F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章