为什么运行出来是7?求解答

img

由于你申请了一个二维数组
p+20相当于把p[0][20]移动到p[1][20]
p+20指向的是beijing
beijing有7个字符 所以是7

因为数组空间是连续的,p+20实际就指向了str[1],即"Beijing"字符串的首地址了。所以strlen(p+20)实际获得的是"Beijing"字符串的长度

*p=str[0]表示p指向数组的第一个位置,p+20表示指针后移20位,数组存放是按行存放,指针向后移动二十位就指向了str[1]的位置,就是Beijing的第一个位置,strlen求字符串长度,遇到结束符就停止,所有输出的就是beijing的长度,就等于7了