作者:
Wardyal (Wardyal)
2024-07-17 16:06:52void func(char* str) {
printf("%s\n", str);
}
void func(char str[]) {
printf("%s\n", str);
}
這兩個應該都沒差吧
還是有甚麼小小的差異
char string最後都有 '\0' 應該都可以印出來?
作者:
wahaha99 (此方不可長)
2024-07-17 16:08:00你認真嗎
作者:
oin1104 (是oin的說)
2024-07-17 16:10:00感覺差不多吧 都指標
作者:
bach8517 (palela)
2024-07-17 16:10:00444444444
作者:
Wardyal (Wardyal)
2024-07-17 16:10:00認真阿 我剛剛試跑都一樣 只是不知道差別
作者:
yam276 ('_')
2024-07-17 16:11:00你認真嗎
作者:
Wardyal (Wardyal)
2024-07-17 16:13:00陣列不也是一組數據 讓一個指標指到頭嗎
作者:
wahaha99 (此方不可長)
2024-07-17 16:14:00ChatGPT 4o 說一樣
作者:
Wardyal (Wardyal)
2024-07-17 16:14:00喔喔 我是問Copilot
作者:
oin1104 (是oin的說)
2024-07-17 16:15:00呼叫的時候會有差嗎比如 *str那個 不能用{a,a,a,a}直接用 但是str[]也許可以 嗎 @露西亞 @二跑 @咕咕嚕
作者:
wahaha99 (此方不可長)
2024-07-17 16:16:00老實說 指標這用法最好別搞了 很早以前就說過這會容易造成安全問題
作者:
Wardyal (Wardyal)
2024-07-17 16:16:00那用哪個比較好 宣告char string的話
作者:
oin1104 (是oin的說)
2024-07-17 16:16:00問就是改用string
作者:
oin1104 (是oin的說)
2024-07-17 16:17:00韌體大師
作者:
wahaha99 (此方不可長)
2024-07-17 16:17:00韌體沒辦法...如果是os跟驅動, 現在趨勢是Rush了我記得我當年用Keil C好像都是string
兩個沒有哪個比較好,指標是指標,值是值,看你要幹嘛如果不知道差別就都先用值,不然會改到原來的指標
作者:
wahaha99 (此方不可長)
2024-07-17 16:19:00ChatGPT說這兩個都是指標 第二種在C會轉成指標傳
作者:
wahaha99 (此方不可長)
2024-07-17 16:21:00應該說當年C很愛用指標 ...C說是高階語言 但沒有現代高階語言的特性 記憶體管理只有做半套
作者:
yam276 ('_')
2024-07-17 16:22:00char array就是指標指向頭C處理字串就是仿賽C沒有字串的概念 只有字元指標字元陣列然後還有unsigned char*當普通指標用的
作者:
wahaha99 (此方不可長)
2024-07-17 16:26:00所以遇到unicode時非常操蛋 還好韌體比較少這種
作者:
ZooseWu (N5)
2024-07-17 16:34:00哪個語言的陣列會傳值啊
作者:
Wardyal (Wardyal)
2024-07-17 16:37:00C++記得可以C不行 記得
作者:
szymwf (szymwf)
2024-07-17 16:43:00函式裡面的str應該是一模一樣的東西 要宣告應該第二種比較好吧 比較能直觀看出來要傳入的值是char的陣列
作者:
Wardyal (Wardyal)
2024-07-17 16:43:00喔喔 也是 可讀性好一點
作者:
lindet (好想...)
2024-07-17 16:48:00用第一種比較好
作者:
Wardyal (Wardyal)
2024-07-17 16:50:00= = 好