一、调试
1.实例1:
经调试,该代码因数组越界会死循环
二、优秀的代码
注意事项:assert()返回真假并决定是否报错
常量指针本质是指针,常量修饰它,表示这个指针是一个指向常量的指针(变量)。指针指向的对象是常量,那么这个对象不能被更改。常量指针是像这样声明的:const int *p;int const *p;
指针常量,指针常量意味着指针本身是一个常量,它的值(即存储在指针中的内存地址)在初始化后不能改变,但这个指针所指向的对象是可以修改的,例如,int *const p = &a,在这里,p是一个指向a的常量,它的值不能改变,但可以修改a的内容。
注意事项:建议用指针指向某一const修饰的变量时,使用常量指针,以保证指针不误改该常量
1.案例1:模拟实现库函数
版本1:
版本2:将字符拷贝与‘\0’拷贝融合
版本3:考虑到会传入空指针的问题
版本4:用断言assert()函数解决if判断不报错隐藏错误的问题
版本5:考虑到指向某一不想被修改的常量时,用常量指针,注意与指针常量区分
常量指针的保护下,会预防下述错误的发生即指针修改了不该改的常量
版本6:考虑模拟字符串复制函数返回值的问题其实为一个字符指针
三、常见的错误