作业帮 > 综合 > 作业

C语言问题:下面的代码 p1++,p2++是代表什么:*p1=*p2,请详细解说下指针的用法?

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/20 02:53:34
C语言问题:下面的代码 p1++,p2++是代表什么:*p1=*p2,请详细解说下指针的用法?
#include
int main(void)
{
char str1[10],str2[10];
char *p1,*p2;
p1=str1;
p2=str2;
printf("请输入原字符串:\n");
gets(p2);
for(; *p2!='\0';p1++,p2++)
*p1=*p2;
*p1='\0';
printf("原字符串是:%s\n 复制的字符串是:%s\n",str2,str1);
return 0;
}
C语言问题:下面的代码 p1++,p2++是代表什么:*p1=*p2,请详细解说下指针的用法?
p1++ 指针的自增,自减,就是指针往前或往后移动.
p1=str1; 即 p1 指向str1[0]的位置 p2 同理
p1++ 就是 让指针向前移动 于是 p1 就等于 str1[1] 再++ 就是 str1[2] ... str1[3]
当 p1 指向 str1[0] 的时候 *p1 就是str1[0]的值
所以 *p1=*p2; 就相当于 str1[0] = str2[0]
就是把第二个字符串的第一个字符 赋值到第一个字符串的第一个字符.然后都++
于是 就是赋值第二个字符 然后都++
赋值第三个字符 . 直到结束为止