程序如下
#include "stdio.h"
#include "string.h"
void main()
{
char s1[40],d[40],*p,*q;
p=s1;
q=d;
printf("input a string:");
gets(s1);
while(*q++=*p++);
puts("destination string:");
puts(q);
}
问题:while(*q++=*p++);执行到*p将‘\0’赋值给*q时,然后p,q都向后移动一位,请问这不是溢出了吗,此时p,q应该移出了s1,d数组的范围?
Power12138
qq_追梦_26