|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- #define MAX 1024
- int main()
- {
- char str1[MAX];
- char str2[MAX];
- 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[0] 的,当然可以复制 str1[0] 了。
|
|