#include<stdio.h>
//nogood.c -- 有错误的程序
int main(void)
( //错误1应用花括号,而不是圆括号
int n, int n2, int n3;//错误2使用太多int符号,正确为int n,2n,3n;或
int n;
int 2n;
int 3n;
n = 5;
n2 = n * n;
n3 = n2 * n2;
printf("n=%d,n squared=%d,n cubed=%d\n"n, n2, n3);
return 0;
)
C语言语法错误是指:把有效的符号放错位置。
在调试期间可以快速查看出明显的错误,并且编译器会帮助你标明错误位置(编译器经常会比真正错误的地方滞后一行,认真查看)但是编译器也会出差,比如某个隐藏语句干预编译器判断。有时虽然报错狠多,但往往修复前几个就会解决问题,修改时尽量从上到下修改程序。
#include<stdio.h>
//stillbad.c -- 修复语法错误的程序
int main(void)
{
int n, n2, n3;
n = 5;
n2 = n * n;
n3 = n2 * 2n;
printf("n=%d,n squared=%d,n cubed=%d\n", n, n2, n3);
return 0;
}
C语言语义错误是指:打印在屏幕上的意思与自己想象的不符,但是代码却没有错误,计算机可以识别
此程序最终打印的结果是:n=5,n2=25,n3=625。如果对立方熟悉的话,最后一个等数就是不对的,因为开发者对n3是要表达n的3次方,可是最终的结果是n的4次方。这时计算机识别代码正确,却与开发者的想法不一致=。这样需要学习一下系统的学习程序状态。
1.想象有3个盒子分别代表n,n2,n3,将第一个数值5赋给n,接着n与n相乘,等于数值25,将25赋予n2,这样用25*25(
n2与n2相乘)等于数值625,将625赋予n3。这样就可以看出计算机是用n2*n2来计算 ,而不是n2*n。这个办法虽然明朗,但是对于大数额的数字无法进行。
2.在关键点加入函数print()语句,以便查看变量值的变化与执行情况,从而确定能否运行,如果可以在删除此函数语句。
3.使用调试器,这个学习调试器即可。