1. 什么是bug?
第一次被发现的导致计算机错误的飞蛾,也是第一个计算机程序错误。
又是如何排查出现的问题的呢?
拒绝-迷信式调试!!!!
#include<stdio.h>
int main()
{
int i = 0;
int arr[10] = {0};
for(i=0; i<=12; i++)
{
arr[i] = 0;
printf("hehe\n");
}
return 0;
}
4.多多动手,尝试调试,才能有进步。
int main()
{
int i = 0;
int sum = 0;//保存最终结果
int n = 0;
int ret = 1;//保存n的阶乘
scanf("%d", &n);
for(i=1; i<=n; i++)
{
int j = 0;
for(j=1; j<=i; j++)
{
ret *= j;
}
sum += ret;
}
printf("%d\n", sum);
return 0;
}
int main()
{
int i = 0;
int sum = 0;//保存最终结果
int n = 0;
scanf("%d", &n);
for(i=1; i<=n; i++)
{
int ret = 1;//保存n的阶乘
int j = 0;
for(j=1; j<=i; j++)
{
ret *= j;
}
sum += ret;
}
printf("%d\n", sum);
return 0;
}
5.2 实例二
#include <stdio.h>
int main()
{
int i = 0;
int arr[10] = {0};
for(i=0; i<=12; i++)
{
arr[i] = 0;
printf("hehe\n");
}
return 0;
}
研究程序死循环的原因。
#include <stdio.h>
int my_strlen(const char *str)
{
int count = 0;
assert(str != NULL);
while(*str)//判断字符串是否结束
{
count++;
str++;
}
return count;
}
int main()
{
const char* p = "abcdef";
//测试
int len = my_strlen(p);
printf("len = %d\n", len);
return 0;
}
assert()函数是断言的意思,可以在括号里面放上任何你想判断的条件,提前检查条件是否有错,防止在运行时出错。实用此函数必须使用头函数文件名#include<assert.h>。文章来源:https://www.toymoban.com/news/detail-506988.html
#include <stdio.h>
void test1()
{
int n = 10;
int m = 20;
int *p = &n;
*p = 20;//ok?
p = &m; //ok?
}
void test2()
{
//代码2
int n = 10;
int m = 20;
const int* p = &n;
*p = 20;//ok?
p = &m; //ok?
}
void test3()
{
int n = 10;
int m = 20;
int *const p = &n;
*p = 20; //ok?
p = &m; //ok?
}
int main()
{
//测试无cosnt的
test1();
//测试const放在*的左边
test2();
//测试const放在*的右边
test3();
return 0;
}
文章来源地址https://www.toymoban.com/news/detail-506988.html
到了这里,关于C语言的实用调试技巧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!