C++的基础知识(十六)--在字符串copy函数中引入辅助指针变量
2017-12-22 13:38
399 查看
不要轻易改变函数形参的值,要引入一个辅助指针变量,把形参的值接过来
#include "stdio.h" #include "stdlib.h" #include "string.h" //改变形参指针的指向后无法打印出数据 //因为指针已经指向了字符串末尾 void copy_str25_err(char *from,char *to) { while( (*to++ = *from++) ) { } //执行完字符拷贝后指针from指向字符串结束表示--‘\0’,所以此时从from开始,不会打印出字符。 printf("copy_str25_err from:%s \n",from); } //解决方法:使用辅助指针变量 //仅仅改变辅助指针变量的指向,而不改变形参指针的指向 void copy_str25(char *from,char *to) { char *tmpfrom = NULL,*tmpto = NULL; tmpfrom = from; tmpto = to; while( (*tmpto++ = *tmpfrom++) ) { } //字符拷贝操作时,改变指向的是辅助指针变量,而形参from没有变化,指向的还是字符串的首地址 printf("copy_str25 from:%s\n",from); //所以从from开始,可以打印出字符串 } int main() { int ret = 0; char *from = "abcdefg"; char buf2[100]; if( !'\0' ) { printf("%d\n",'\0'); } copy_str25(from,buf2); copy_str25_err(from,buf2);//出错 system("pause"); return ret; }
相关文章推荐
- 在字符串copy函数中引入辅助指针变量
- [C++ 面试基础知识总结]表达式和函数
- C++基础知识--static成员和const成员函数
- C++中的基础相关知识之内联函数inline,extern,条件编译
- C/C++基础知识:函数指针和指针函数的基本概念
- C/C++基础知识总结——数组、指针域、字符串
- C++学习基础十六-- 函数学习笔记
- 基础知识(四)C++常用函数.txt
- C 的字符串处理函数 strcpy() 与 c++的copy() 函数的不同之处
- 基础知识(十)C++常用函数.txt
- [C++基础]032_常用的字符串处理函数(strcat,strcpy,strcmp,strupr,strlwr,strlen)
- [C++]基础知识---函数
- 【一问一答】c++基础知识 ||类,模版,多态,虚函数
- C++基础知识(二) 字符串
- C++基础知识复习--字符串
- C++ 基础知识点 四 第5章 C++函数与程序结构
- C++函数参数的基础知识
- C++基础知识复习--结构体类数组作为函数参数
- Solidity基础入门知识(三)字符串和函数
- C++ 字符串截断的实现(基础函数)