pb= b1+3,也就是开始时pb=b1[3] while(--pb>b1),先执行pb--,此时pb=b1[2],满足条件,执行strcpy,b2的值是cdefg,进入下一次循环b2的值是cdefg, 再执行--pb,此时pb=b1[2],满足条件,执行strcpy,b2的值是bcdefg,进入下一次循环, 再执行--pb,此时pb=b1[1],不满足条件,结束循环。 所以最后b2中的值是bcdefg,共6个字符,在计算strlen时,会多加一个'\0'字符,所有sizeof(b2)的大小就是7
不知道你这个问题是否已经解决, 如果还没有解决的话: