首页 > 代码库 > 指针函数的++(极易犯错误)
指针函数的++(极易犯错误)
#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’, 所以//不要轻易改变形参的值, 要引入一个辅助的指针变量. 把形参给接过来.....
指针函数的++(极易犯错误)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。