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