printf的%s與&問題
各位大大好!
小弟無意間遇到一個問題,如下
char a[]="hello";
printf("%s", &a[0]);
輸出為hello,但是不是應該要是取a陣列第一個元素的位址嗎?怎麼會是輸出為hello呢?
請各位大大指點指點!
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.12.145.232 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1566093892.A.BE8.html
→
08/18 10:08,
4年前
, 1F
08/18 10:08, 1F
推
08/18 10:15,
4年前
, 2F
08/18 10:15, 2F
推
08/18 11:19,
4年前
, 3F
08/18 11:19, 3F
→
08/18 11:20,
4年前
, 4F
08/18 11:20, 4F
推
08/18 13:15,
4年前
, 5F
08/18 13:15, 5F
推
08/18 13:40,
4年前
, 6F
08/18 13:40, 6F
→
08/18 13:41,
4年前
, 7F
08/18 13:41, 7F
→
08/18 13:44,
4年前
, 8F
08/18 13:44, 8F
→
08/18 13:47,
4年前
, 9F
08/18 13:47, 9F
大概瞭解了!感謝各位!
不過有一點還是不太懂,就是d大一開始說的如果要吐字元的話就應該要給int,想問的是如
果吐字元不就是用%c,後面要給陣列元素嗎?int是什麼意思?
謝謝各位大大!
※ 編輯: OnlyCourage (101.12.145.232 臺灣), 08/18/2019 16:02:44
推
08/18 18:23,
4年前
, 10F
08/18 18:23, 10F
→
08/18 18:54,
4年前
, 11F
08/18 18:54, 11F
→
08/18 23:09,
4年前
, 12F
08/18 23:09, 12F
→
08/18 23:12,
4年前
, 13F
08/18 23:12, 13F
推
08/19 01:11,
4年前
, 14F
08/19 01:11, 14F
→
08/19 01:14,
4年前
, 15F
08/19 01:14, 15F
→
08/19 01:17,
4年前
, 16F
08/19 01:17, 16F
推
08/19 19:47,
4年前
, 17F
08/19 19:47, 17F
→
08/19 19:48,
4年前
, 18F
08/19 19:48, 18F
→
08/19 19:48,
4年前
, 19F
08/19 19:48, 19F
→
08/19 19:49,
4年前
, 20F
08/19 19:49, 20F
沒想到感覺很基本的printf, %c, %s原來背後的意義這麼多0.0,小弟我還太淺了 哈哈哈
※ 編輯: OnlyCourage (101.12.145.232 臺灣), 08/20/2019 00:44:14
→
08/20 01:04,
4年前
, 21F
08/20 01:04, 21F
→
08/20 09:47,
4年前
, 22F
08/20 09:47, 22F
→
08/20 09:49,
4年前
, 23F
08/20 09:49, 23F
→
08/20 09:50,
4年前
, 24F
08/20 09:50, 24F
你說的沒錯!
關於printf %c的觀念,我想請各位大大幫我做個確認。
char a='s';
printf("%c", a);
s的ascii是73,所以%c需要一個int傳入,所以a得值是73傳入%c,所以才會printf出s字元
。這樣的說法不知道是不是有問題?還請各問指教了 謝謝
※ 編輯: OnlyCourage (101.12.145.232 臺灣), 08/21/2019 12:16:33
推
08/21 15:21,
4年前
, 25F
08/21 15:21, 25F
→
08/21 15:22,
4年前
, 26F
08/21 15:22, 26F
→
08/21 15:22,
4年前
, 27F
08/21 15:22, 27F
→
08/21 15:23,
4年前
, 28F
08/21 15:23, 28F
→
08/21 15:23,
4年前
, 29F
08/21 15:23, 29F
大致上瞭解了!謝謝各位!
※ 編輯: OnlyCourage (49.217.196.134 臺灣), 08/22/2019 00:45:33