上周学校了C基础,除了之前的C基础部分要点的概述外,我在学习中碰到了不少问题,尤其是不能运行和思维逻辑跟不上时最大的苦恼,所以就先写写这篇C语言的常见错误。
C语言对于我这种初学者来说,运行报错很常见,可报错之后,又不一定看得懂,因为报错方式是英文。所以,问题一旦出现就要一个一个瞅对错,这样做不仅效率不高,而且眼一花,说不定就得从头开始。可是英文又不能临时抱佛脚,毕竟这不是一朝一夕的事,所以在几天做题的练习下,我发现了一些,我的经常出现的运行错误,这就小小的分享下。
1、首当其冲就是输入scanf时,忘记"&"。例:
int c,d;
scanf("%d,%d",c,d);
虽然这样它依然可以运行,但是它没法输出地址值。
2、忘加分号或加错逗号而运行报错。例:
printf("%d,%d,"c,d);
printf("%d,%d",c,d)
这种情况,一般程序都会报错,一般也好查看。
3、又是scanf,为什么又说是它呢,因为刚学的时候,大家应该都知道有“\n”这个还行符号,大家也应该都会忘printf里面加“\n”这个符号换行。所以,就自然而然的开始在scanf里面加这个符号。这样输入后,程序不会运行,可是我们却会一直找不到,因为我们不了解,原来“\n”也不是哪都能加的。
4、误把“=”当做运算符。例:
if(x=3)
大概是受小时候的影响,我们经常在知道“=”是赋值的意思时却依然用它,我常想,这是潜移默化还是狗改不了吃屎呢?
5、又是分号,还是那句话,我们总是画蛇添足的,不该加的我们都勇往直前、义无反顾的加。例:
if(a>b);{
temp=a;
a=b;
b=temp;
}
看出来在哪加了吗?说真的,开始学的时候,我总是情不自禁的给它加上。而且,还恶性循环的一直改东改西就是不改它。
6、switch后面不跟break,switch case在执行时,首先根据switch表达式,找到满足条件的case分支,执行。在执行过程中,如果遇到break,则跳出switch语句,否则,将继续一级一级往下执行,直到遇到break或结束。而不加break就会有多个执行结果,所以能怪不知是哪出了错吗?谁叫我们随心所欲地加或减呢。
7、括号不匹配,不管是循环嵌套还是判断嵌套,因为有许多的括号要打,而有时呢,就忘了右边的括号。这让我想起我一个一个数括号的经历……唉!
这是我常出错的地方,有借鉴的可以借鉴,不可借鉴的可以再添……