去评论
推扬网

高德康:strcpy函数相关!!

admin
2020/08/11 17:06:02

张永义的回答:

b[i]只能存储一个char型的字符,"CH”是两个字符,所以会将'C’存储在b[0]中,由于数组的内存地址是连续分配的,所以会将'H'存储在b[1]中,系统自动在"CH"后加的字符串结束标识符'\0'存储在b[2]中; 同理,第二个strcpy将字符'D‘、'E'、'\0'依次存储在b[1]、b[2]、b[3]中; 第三个strcpy将字符'A'、'B'、'C'、'\0'依次存储在b[2]、b[3]、b[4]、b[5]中; 这样下来b[0]、b[1]、b[2]、b[3]、b[4]、b[5]存储的依次为C D A B C \0,系统在打印字符串的时候遇到'\0'时会停止。 char *strcpy(char *dest,char *src); 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 src字符串尾的字符串结束标识符'\0'也会被复制过去,复制完成后s1中的内容会被覆盖掉

祖菲的回答:

b[i]只能存储一个char型的字符,"CH”是两个字符,所以会将'C’存储在b[0]中,由于数组的内存地址是连续分配的,所以会将'H'存储在b[1]中,系统自动在"CH"后加的字符串结束标识符'\0'存储在b[2]中; 同理,第二个strcpy将字符'D‘、'E'、'\0'依次存储在b[1]、b[2]、b[3]中; 第三个strcpy将字符'A'、'B'、'C'、'\0'依次存储在b[2]、b[3]、b[4]、b[5]中; 这样下来b[0]、b[1]、b[2]、b[3]、b[4]、b[5]存储的依次为C D A B C \0,系统在打印字符串的时候遇到'\0'时会停止。 char *strcpy(char *dest,char *src); 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 src字符串尾的字符串结束标识符'\0'也会被复制过去,复制完成后s1中的内容会被覆盖掉

弘毅的回答:

b[i]只能存储一个char型的字符,"CH”是两个字符,所以会将'C’存储在b[0]中,由于数组的内存地址是连续分配的,所以会将'H'存储在b[1]中,系统自动在"CH"后加的字符串结束标识符'\0'存储在b[2]中; 同理,第二个strcpy将字符'D‘、'E'、'\0'依次存储在b[1]、b[2]、b[3]中; 第三个strcpy将字符'A'、'B'、'C'、'\0'依次存储在b[2]、b[3]、b[4]、b[5]中; 这样下来b[0]、b[1]、b[2]、b[3]、b[4]、b[5]存储的依次为C D A B C \0,系统在打印字符串的时候遇到'\0'时会停止。 char *strcpy(char *dest,char *src); 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 src字符串尾的字符串结束标识符'\0'也会被复制过去,复制完成后s1中的内容会被覆盖掉