C语言学习分享/C语言调试

#define _CAR_SECURE_NO_WARNINGS_1 

#include <stdio.h>
#include <stdlib.h>

//int main()
//{
//    int i;
//    for (i = 0; i < 10; i++)
//        printf("%d ",i);
//    system("pause");        // 暂停  #include <stdlib.h>   
//    return 0;
//}
//Debug--排除故障(调试版本)--包含调试信息,不做任何优化,方便程序员调试
//Release--发布 (发布版本) --进行了各种优化,不能调试,使代码在大小和运行速度上是最优的,方便用户
//可以去找到debug / release文件(应用程序),要先调试一次。  system("pause"); 这样程序不会一闪而过

//**快捷键**
//F9-设置断点--和F5配合使用的,执行到断点停放处
//F5-启动调试--和F9配合使用
//F10--逐过程,不详细,如可能会跳过库函数printf的细节
//F11--逐语句,详细
//Ctrl--F5开始执行,不调试

//多使用assert(断言)--不符合条件时报错到调试控制台,const(恒量),添加必要的注释

#include <assert.h>

//自制strcopy函数
//void my_strcpy1(char* a, char* b)    //6分
//{
//    while (*b != '\0')       
//    {
//        *a = *b;
//        a++;
//        b++;
//    }
//    if(*b=='\0')  
//        *a = *b;   //不转换‘\0’会使arr1[]="hello########"
//}                                      
//void my_strcpy2(char* a, char* b)    //7分
//{
//
//    while (*a++ = *b++)
//    {
//        ;
//    }
//}
//void my_strcpy3(char* a, char* b)    //8分
//{
//    assert(a != NULL);
//    assert(b != NULL);
//    while (*a++ = *b++)
//    {
//        ;
//    }
//}
//void my_strcpy4(char* a, const char* b)//加了const后当代码写错误(如写的是*b++=*a++)更好发现问题
//{
//    assert(a != NULL);                 //9分
//    assert(b != NULL);
//    while (*a++ = *b++)
//    {
//        ;
//    }
//}
//char* my_strcpy5(char* a, const char* b)    //10分
//{                             //将函数的返回值作为另一个函数的参数
//    char* c = a;      //指针a在后面改变了,应先把未变的指针a保存起来
//    assert(a != NULL);                
//    assert(b != NULL);
//    
//    while (*a++ = *b++)
//    {
//        ;
//    }
//    return c;    //返回a的地址
//}
//int main()
//{
//    char arr1[] = "############";
//    char arr2[] = "############";
//    char arr3[] = "############";
//    char arr4[] = "############";
//    char arr5[] = "############";
//    char brr[] = "hello";
//    my_strcpy1(arr1, brr);
//    my_strcpy2(arr2, brr);
//    my_strcpy3(arr3, brr);
//    my_strcpy4(arr4, brr);
//    printf("%s\n",arr1);
//    printf("%s\n",arr2);
//    printf("%s\n", arr3);
//    printf("%s\n", arr4);
//    printf("%s\n", my_strcpy5(arr5, brr));
//}
//const与指针
//当const放在*p左边-const int* p--修饰*p--*p所代表的值不能改变,但地址p能变
//当const放在*p右边-int* const p--修饰p--p所代表的地址不能改变,但值*p能变

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值