指针初级 字符串操作
#include <stdio.h>#define MAX 1024
int main()
{
char str1;
char str2;
char *target1 = str1;
char *target2 = str2;
printf("请输入一个字符串到 str1 中:");
fgets(str1, MAX, stdin);
printf("开始拷贝 str1 的内容到 str2 中...\n");
while ((*target2++ = *target1++) != '\0')
;
printf("拷贝完毕!");
printf("现在,str2 中的内容是:%s", str2);
return 0;
}
str1++了
那为什么str【0】的字符可以复制过去 while ((*target2++ = *target1++) != '\0')
这一句的执行顺序是:先复制指针所指内存处的字符,执行* target2 = * target1,接下来执行指针步进,target2++ ,target1++ , 最后再判断前面复制的字符是不是字符串结束字符 '\0',target1 一开始是指向 str1 开头的,也就是说,是指向 str1 的,当然可以复制 str1 了。
页:
[1]