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

Posted 菜鸟根据地

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指针函数的++(极易犯错误)相关的知识,希望对你有一定的参考价值。

#include<stdio.h>

#include<stdlib.h>

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

	system("pause");
}

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

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

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


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

以上是关于指针函数的++(极易犯错误)的主要内容,如果未能解决你的问题,请参考以下文章

大学生学习编程,极易犯的一个错误

大学生学习编程,极易犯的一个错误

C 语言一级指针 易犯错误 模型 ( 判定指针合法性 | 数组越界 | 不断修改指针变量值 | 函数中将栈内存数组返回 | 函数间接赋值形参操作 | 指针取值与自增操作 )

Java代码编写时易犯错误

指针数组,数组指针,函数指针,main函数实质,二重指针,函数指针作为參数,泛型函数

golang中的那些坑之迭代器中的指针使用