Re: [問題] 函式指標使用時機
看板C_and_CPP (C/C++)作者applecool (noOneKnows)時間13年前 (2013/05/05 01:16)推噓0(0推 0噓 3→)留言3則, 1人參與討論串2/2 (看更多)
推測原作者是不是想問
為什麼要用指標遞增而不是 [] 取值
其實這裡 C 跟 C++ 一樣,指標遞增效率可能會好些
原本 [] 內外配上一般指標和數字就會被解釋成這樣
s[2] = *(s+2) = *(2+s) = (2)[s]
至於網路上 while 的版本主要是在描述行為而已。
*s++ = a 因為 s 是一般指標,後置++的效率沒有影響
如果 s 是你自己實作的 iterator
最好寫成
*s = a;
++s;
※ 引述《junny0204 (~睿~)》之銘言:
: 最近自己實作 strcat strcmp stcpy 等函式
: 舉strcpy 為例
: void myStrcpy(char *str1, const char *str2)
: {
: for (int i = 0; (s1[i] = s2[i]) != '\0'; i++)
: ;
: }
: 這是我自己用for寫的版本
: 看了網路上很版本都是用while
: 我也改了一下
: void myStrcpy(char *str1, const char *str2)
: {
: while (*str1++ = *str2++)
: ;
: }
: 我要問的是
: 為什麼 要特別用 函式指標 呢?
: void *myStrcpy(char *str1, const char *str2)
: {
: while (*str1++ = *str2++)
: ;
: }
: 用與不用 最大的差別在哪裡?
: 或者說不用函式指標 會有什麼缺點
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.110.160.121
→
05/06 13:58, , 1F
05/06 13:58, 1F
→
05/06 13:59, , 2F
05/06 13:59, 2F
→
05/06 14:00, , 3F
05/06 14:00, 3F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章