【发布时间】:2019-12-23 19:28:43
【问题描述】:
我试图将整数字符串复制到另一个字符串。当我尝试这样做时,它不会显示结果。你能告诉我我犯了什么错误吗?
#include <stdio.h>
int main()
{
int arr01[50],arr02[50];
int *ptr01=arr01,*ptr02=arr02;
int n,i;
printf("Input array size:");
scanf("%d",&n);
for(i=0; i<n; i++)
{
scanf("%d",ptr01);
ptr01++;
}
for(i=0; i<n; i++)
{
ptr02 = ptr01;
ptr01++,ptr02++;
}
for(i=0; i<n; i++)
{
printf("%d",*ptr02);
}
return 0;
}
【问题讨论】:
-
ptr01++在循环之后,ptr01已经指向第 n 个元素,因此您无法从那里开始复制。使用ptr01=arr01将其重置回数组的开头。接下来,ptr02 = ptr01需要为*ptr02 = *ptr01。 -
我做到了,但仍然没有显示正确答案
-
最后一个循环也有同样的问题 -
ptr02已经指向第 n 个元素,需要重新设置。 -
那我该怎么办?
-
你为什么不好好想想呢?当然,您可以从 cmets 中学到一些东西,并找出如何至少取得进步。我告诉过你
ptr02不再指向数组的开头。那么如何让它回到起点,以便从那里开始打印呢?
标签: c arrays for-loop pointers copy