运行结果及过程括号里的意思

img


画横线的地方是怎么操作的,括号里第一个逗号前的是什么意思,程序运行的过程是怎样的?谢谢

第一个strcpy里面的b是字符串的首地址,后面的两个strcpy中&a[0] &a[1] &a[2] 表示字符串第一个、第二个、第三个元素的地址,以此类推

&b[1]就是取数组b第1个元素地址,然后从该地址开始写入后面的复制字符串。

你好,第一句strcpy(b,"GH")是默认从b[0]位置开始,将G和H分别放在b[0]和b[1]位置,&的意思是取地址符,即strcpy(b[1],"DEF")是将b[1]地址取出后,从b[1]开始的位置分别放入DEF,执行后的结果是GDEF,在b[1]处D替换掉了原来的H,第三句strcpy也是同理,取出的是b[2]的地址,将b[2]及之后的字符替换为ABC,所以最后的结果是GDABC

b[1]就是第一个元素(数组元素是从0开始数的),字符'H',加个&就是取数组第一个元素的首地址,把 "DEF" 拷贝到数组b,此时b的值为 "GDEF"。
后面一个同理,b[2]是第二个元素,字符 'E',把 "ABC" 拷贝到数组b,此时b的值为 "GDABC"。

首先,strcpy是字符串拷贝函数,它把后面的字符串里的字符依次拷贝到前一个字符数组里
字符数组本身是个指针,它指向首地址
当执行了strcpy(b,"GH")之后,数组b里放的是{'G','H','\0'}
&b[1]就是第1个字符的地址,那么执行完就变成{'G','D','E','F','\0'}
&b[2]是第2个字符的地址,那么执行完变成{'G','D','A','B','C','\0'}

C语言标准库函数strcpy,把从src地址开始且含有'\0'结束符的字符串复制到以dst开始的地址空间。
原型声明:char strcpy(char dest, const char *src);
此题中&a[1],&a[2]就是数组第二个和第三个元素的地址,就是把元素赋值到以&a[1]和&a[2]为起始地址的一片连续的空间。该题具体过程是先将"GH",复制到数组1,2位置,然后将"DEF"复制到数组2,3,4位置,此时会覆盖原2位置内容,最后将"ABC"复制到数组3,4,5位置,此时会覆盖原3,4位置内容,故所得结果为GDABC