[問題] char* = " "字串宣告的問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
no
問題(Question):
今天看到前幾篇有關於char* test = "ABCD"的問題
剛好跟朋友討論到字串
我一直以為char* test = "ABCDEFGHIJK";
是宣告一個指像字串的指標test 然後test內容存放一個位置
該位置指向某個記憶體位置 然後那個位置後面依序放著"ABCD..."
不過寫code下去看結果好像不是如此
感覺code推出的結果比較像是char* 這格放了"ABCDE"這個內容
更可怕的是int*一樣也能放字串 在用%s印出來(雖然不會有人這樣寫
最後就是我原本對C語言指標的理解整個崩壞了..
以下附上我實驗的code能不能請板友解釋char* test = "ABCD"這行指令
compiler到底會對他做什麼事情0.0?
程式碼(Code):(請善用置底文網頁, 記得排版)
http://ideone.com/ADbsbD
補充說明(Supplement):
大一還修了一整年的C語言 現在真是各種羞愧...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.154.14
→
12/22 00:41, , 1F
12/22 00:41, 1F
→
12/22 00:42, , 2F
12/22 00:42, 2F
→
12/22 00:43, , 3F
12/22 00:43, 3F
→
12/22 00:43, , 4F
12/22 00:43, 4F
我原本也是這樣理解的所以一開始還寫printf("%s\n",*test);
結果會core dumped
改成printf("%s\n",test);反而能正常輸出ABCD
※ 編輯: krauserq 來自: 114.43.154.14 (12/22 00:46)
→
12/22 00:47, , 5F
12/22 00:47, 5F
→
12/22 00:49, , 6F
12/22 00:49, 6F
→
12/22 00:49, , 7F
12/22 00:49, 7F
先謝謝t大 printf的部分是我犯蠢了 不過int*那部份我也是無法接受
※ 編輯: krauserq 來自: 114.43.154.14 (12/22 00:51)
→
12/22 00:57, , 8F
12/22 00:57, 8F
→
12/22 01:02, , 9F
12/22 01:02, 9F
推
12/22 01:45, , 10F
12/22 01:45, 10F
→
12/22 01:45, , 11F
12/22 01:45, 11F
→
12/22 01:46, , 12F
12/22 01:46, 12F
→
12/22 01:47, , 13F
12/22 01:47, 13F
→
12/22 01:49, , 14F
12/22 01:49, 14F
推
12/22 01:54, , 15F
12/22 01:54, 15F
→
12/22 01:55, , 16F
12/22 01:55, 16F
→
12/22 01:56, , 17F
12/22 01:56, 17F
→
12/22 01:56, , 18F
12/22 01:56, 18F
→
12/22 01:57, , 19F
12/22 01:57, 19F
→
12/22 01:58, , 20F
12/22 01:58, 20F
→
12/22 01:59, , 21F
12/22 01:59, 21F
→
12/22 01:59, , 22F
12/22 01:59, 22F
→
12/22 11:43, , 23F
12/22 11:43, 23F
→
12/22 11:45, , 24F
12/22 11:45, 24F
→
12/22 11:46, , 25F
12/22 11:46, 25F
→
12/22 11:48, , 26F
12/22 11:48, 26F
→
12/22 11:49, , 27F
12/22 11:49, 27F
→
12/22 11:49, , 28F
12/22 11:49, 28F
推
12/22 12:18, , 29F
12/22 12:18, 29F
推
12/22 12:21, , 30F
12/22 12:21, 30F
→
12/22 12:21, , 31F
12/22 12:21, 31F
→
12/22 12:22, , 32F
12/22 12:22, 32F
→
12/22 14:21, , 33F
12/22 14:21, 33F
→
12/22 14:21, , 34F
12/22 14:21, 34F
→
12/22 14:22, , 35F
12/22 14:22, 35F
→
12/22 14:49, , 36F
12/22 14:49, 36F
推
12/22 18:02, , 37F
12/22 18:02, 37F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章