指针函数的++(极易犯错误)

#include<stdio.h>

#include<stdlib.h>

#include<string.h>
//实现字符串的拷贝
int main11()
{
	char a[]={"dajdjaskd"};
	char b[267];
	int i;
	for(i=0;a[i]!='';i++)
	{
		*(b+i)=*(a+i);
	}
	b[i]='';//这个很重要呢,一定要加,否则这个结果就是乱码
	printf("b== %s
",b);

	system("pause");
}

char copy_str(char *from,char *to)
{
	char *myfrom=from;
	char *myto=to;
	while(*myto++=*myfrom++);
	printf("from: %s
",from);
}
char copy_str1(char *from,char *to)
{
	
	while(*to++=*from++);//字符串结束符 '' 的 ASCII 值 正好是 0。 所以 用 0 判断 和 用 '' 判断,结果一样。
	printf("from: %s
",from);
}
 int main()
 {
	 char a[]={"sada"};
	 char b[128];

	 copy_str(a,b);
	 printf(" b : %s
",b);

	  copy_str1(a,b);
	 printf(" b : %s
",b);


	system("pause");
 }
  •   关于字符串有几个重点问题呢
  • 字符串循环赋值的时候,可能不能够赋值‘’ 需要手工加上去,要不然肯定出错。
  • 指针循环实现++的时候,输出的时候,指针指向了‘’, 所以//不要轻易改变形参的值, 要引入一个辅助的指针变量. 把形参给接过来.....
原文地址:https://www.cnblogs.com/xiaochige/p/6653338.html