1、我们先来看ptr和数组arr的关系:
ptr是一个字符指针,它指向了字符数组arr的开始的元素arr[0](这是由for中的表达式
1 ptr=arr实现的).
2、我们再来看for循环:
循环条件:当 ptr < arr+2 时循环继续,而这个arr+2是数组arr中元素 arr[2] 的地址&arr[2];
循环体:printf(“%c--%sn”,*ptr, ptr); 输出ptr所指向的单元内容以及ptr所指向的字符串,其
中的*ptr的值为字符a,%s会从ptr指向的地址开始输出字符串,所以开始时输出 a--abcdef;
接下来ptr++是使得ptr指向下一个单元,因此输出上面内容后ptr指向了 arr[1],或者说ptr的
值等于arr+1(实际是&arr[1]),由于arr+1小于arr+2成立,所以执行循环体
printf(“%c--%sn”,*ptr, ptr);
而此时的ptr由于指向了arr[1],其对应的字符为b,所以*ptr的值为b,后面的%s会从ptr指向
的地址开始输出字符串,所以会输出 bcdef.
3、循环的结束:
由于再一次ptr++ 后,ptr的值为arr+2 ,已经不满足pt