char ch0[10] = "hello";
char ch1[10];
void main(){
clrscr();
char *pt0 = ch0;
char *pt1 = ch1;
puts(pt0);
while(*pt0 != '\0')
{
*pt1++ = *pt0++;
}
*pt1 = '\0';
printf("value of ch1 =");
for(int i = 0; i < sizeof(ch1); i++){
printf("%c",ch1[i]); // prints value correctly
}
putchar('\n');
printf("pointer pt1 value = %c",*pt1); // gives garbage value
getch();
}
指针
pt1
值不可访问,但是ch1
指向正确的值。如何访问pt1?
我不擅长指针只能解释我的工作场景
output:
hello
value of ch1 =hello
pointer pt1 value= \\garbage value
最佳答案
在我看来,你只需要重置pt1
。复制循环之后,它指向ch1
数组中字符串的结尾。
所以,在电话之后:
*pt1='\0';
pt1
指向ch1
中字符串的结尾。因此,要打印出来,需要将其重置回ch1
。关于c - 我正在尝试使用指针在c中复制字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32472767/