Re: [問題] 為什麼 while (*s++ = *t++) 是字串複製?
※ 引述《nand (反及閘萬用閘)》之銘言:
: 其中一段落讀到 while (*s++ = *t++) 的意思是字串複製
: 1. ( a = b ) 這樣的指派指令 是會傳回 true 嗎?
: 2. 哪什麼時候 (*s++ = *t++) 會傳回 fasle 呢? 為什麼呢?
: 感謝大家看完
小弟寫程式做實驗 有以下心得:
1. ( a = b ) 這種表示式, 傳回的值是 b
2. 原來 char s1[100] 的 s1 阿, 是 char pointer (即 char*)
3. 推文大大說的是對的, 字串尾是放 00h
謝謝各位指導
附實驗:
#include <stdio>
int main(int argc, char *argv[]){
char s1[100] = "hello, world";
char s2[100];
printf("s1 = %s\ns2 = %s\n\n", s1, s2);
char* a = s1;
char* b = s2;
while(true){
int iValue = (*b = *a);
printf("%c ", iValue);
a++; b++;
bool bValue = iValue;
if(!bValue) break;
}
printf("\n\ns1 = %s\ns2 = %s\n", s1, s2);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.225.160.102
推
10/07 21:51, , 1F
10/07 21:51, 1F
→
10/07 21:52, , 2F
10/07 21:52, 2F
→
10/07 21:52, , 3F
10/07 21:52, 3F
推
10/07 22:04, , 4F
10/07 22:04, 4F
→
10/07 22:04, , 5F
10/07 22:04, 5F
→
10/07 22:05, , 6F
10/07 22:05, 6F
→
10/07 22:41, , 7F
10/07 22:41, 7F
→
10/07 22:42, , 8F
10/07 22:42, 8F
→
10/07 22:46, , 9F
10/07 22:46, 9F
→
10/07 22:51, , 10F
10/07 22:51, 10F
→
10/07 22:52, , 11F
10/07 22:52, 11F
→
10/08 00:56, , 12F
10/08 00:56, 12F
→
10/08 07:10, , 13F
10/08 07:10, 13F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):