1.很多时候运行错误都会常常发生,那么如何避免:
①:数组开大点 :数组太小!运行错误!分数太少! 妈妈快来救我。
②:避免使用指针:指针是个很复杂的东西,为什么因为它是动态的,你不是很专业的C语言编写者,很多时候你错误了你都不知道,C语言的编译器不像其他编译器查得出来很多错误,有一些隐藏的致命错误,如没有释放指针等等,都是让你的0分的隐藏的致命错误.所以如果你不是精通C语言的高级编程员,请避开指针!!!(你是想保护你那幸苦得来的分数远离指针,还是想要华丽炫耀你那高超又带有危险的编程技巧最后得个0!!!为了保护你那脆弱的小心脏,请远离指针
③:数据超过你定义的范围: 乘法运算很多时候都是溢出的关键,举个栗子 以下为linux环境:
计算a*b的数值 (a=100000000,b=100000000).
乍一看特容易开个long long,不就够了. (这么容易的题目)
你可能会这样写
#include<stdio.h>
int a=100000000,b=100000000;
long long s;
int main()
{
s=a*b;
printf("%lld",s);
}
乍一看,嗯没有错误,其实你就掉进陷阱!!!
估计你会这样,怎么可能,耍我吧,这明明无懈可击。
呵呵,错误在哪里
罪魁祸首:
int a=100000000,b=100000000;
为什么是错的!!!
因为在计算机内部处理,值会放在a,b两个之中.不会放在s,等到结果出来了,再把a或b放在s里面.
正确代码:
#include<stdio.h>
long long a=100000000,b=100000000;
long long s;
int main()
{
s=a*b;
printf("%lld",s);
}
④:递归调用次数要少,多了会"栈溢出" 神马"栈溢出"
你会说我没有开栈呀 呵呵说过这样想 你就OUT了,C语言递归调用,在内部就是栈处理.
如有别的问题请在底下发言,笔者会在第一时间解答