感觉这个题目有问题,因为不能改变字符串的值
单纯从出题者的角度来看,答案应该是C,因为STRLEN("ABCD")的结果是4,不会将'\0'字符包括进去
你别忘了,STRCPY的时候'\0'字符也要拷贝过去的,所以拷贝过去的结果应该是abcABCD\0,此时的P指向'A',所以结果是4
这个题本身是有问题的...虽然可能出结果..我这里就不行,dev-c++
devC++不行
p+=3后,p指向d,即p指向的字符串为“defgh”
C中字符串是用字符数组存储的,并且以“\0”结尾。
“ABCD”存为'A'、'B'、'C'、'D'、'\0'
字符串拷贝后,p指向的字符串变为'A','B','C','D','\0','\0'
在计算字符串长度时,到第一个'\0'就截止了,并且不计'\0',故长度为4