C语言学习/复习20--调试、assert报错、常量指针、指针常量

一、调试
      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:考虑模拟字符串复制函数返回值的问题其实为一个字符指针

          

三、常见的错误

       

     

                    

          

  • 20
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值