Re: [問題] 傳陣列指標
要不是你抄錯,就是原文就有錯...XDD
※ 引述《ishuen (盧小小)》之銘言:
: 大家好,我在書上看到一段程式不太了解
: void copyString(char *to, char *from)
: {
: for ( ; *from = '\0'; ++from, ++to)
^^這應該是 != 才會動
這個徊圈做的事是,沒有初始東西,等到 *from 不是 \0 的時候就停下來
然後每次都把 from 和 to 指標移動一個
: *to = *from
然後指定把 from 指到的字元複製到 to 去
: *to = '\0';
最後把 to 結尾填上 \0 作結尾
: }
: int main (int argc, char * argv[])
: {
: @autoreleasepool{
: char string1[] = "A string to be copied.";
: char string2[50];
: copyString(string2, string1);
: NSLog(@"%s",string2);
: }
: return 0;
: }
: 我想問在main裡面
: 傳了兩個character string給copyString
: 書上說實際上是傳了兩個string的pointer過去
: 可是copyString的參數pointer
: 不是只能指向character string裡的某個字嗎?
: 像是char from = string1[0];
: 但是為什麼這兩個pointer可以用來代表兩個string?
要注意的是,這邊是宣告了 char 陣列,不是 NSString 字串,所以整個都是 C 的
想法。string1 這個變數是個指向某個char陣列頭的指標,但是你直接 *string1 的話
取到的值就是 string1[0] 的 char。配合copyString這個function,整件事情就是
把兩個陣列頭的指標丟進去,然後把指標每次移動1個位置,複製資料,檢查是不是
到了string1的結尾(\0),是的話就把string2也結束(把\0接到尾巴)
其實這整段都是C...
--
Luna quieres ser madre
y no encuentras querer
que te haga mujer
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.125.216
推
01/10 07:42, , 1F
01/10 07:42, 1F
→
01/10 07:43, , 2F
01/10 07:43, 2F
→
01/10 08:22, , 3F
01/10 08:22, 3F
→
01/10 08:23, , 4F
01/10 08:23, 4F
→
01/10 13:50, , 5F
01/10 13:50, 5F
推
01/10 15:02, , 6F
01/10 15:02, 6F
→
01/10 15:04, , 7F
01/10 15:04, 7F
→
01/10 17:02, , 8F
01/10 17:02, 8F
→
01/10 17:03, , 9F
01/10 17:03, 9F
→
01/10 17:41, , 10F
01/10 17:41, 10F
→
01/11 08:15, , 11F
01/11 08:15, 11F
→
01/11 08:15, , 12F
01/11 08:15, 12F
推
01/11 08:46, , 13F
01/11 08:46, 13F
討論串 (同標題文章)