nogood.c程序
程序清单2.4(c primer plus)
/* nogood.c-- 有错误的程序*/
#include<stdio.h>
int main(void)
(
int n, int n2, int n3;
/*该程序有多处错误*/
n = 5;
n2 = n * n;
n3 = n2 * n2;
printf("n = %d, n squared = %d, n cubed = %d\n", n, n2, n3)
return 0;
)
语法错误
C语言的语法错误指的是,把有效的C符号放在错误的地方。
nogood.c中的错误如下:
1.
main()函数体 使用圆括号来代替花括号。这就是把C符号用错了地方2.变量声明应该这样写
int n,n2, n3;或者,这样写:
int n; int n2; int n3;3.
main()中的注释末尾漏掉了 /(另一种修改方案是,用//替代换)。4.
printf()语句漏掉了分号
语义错误
语义错误是指意思上的错误。
n3 = n2 * n2此处n3原意表示n的3次方,但是代码中的n3被设置成n的4次方(n2 = n * n)。
stillbad.c程序
程序清单2.5
/* stillbad.c -- 修复了语法错误的程序*/
#include<stdio.h>
int main(void)
{
int n, n2, n3;
/*该程序有一个语义错误*/
n = 5;
n2 = n * n;
n3 = n2 * n2;
printf("n = %d, n squared = %d, n cubed = %d\n", n, n2, n3);
return 0;
}
该程序的输出如下:
n = 5, n squared = 25, n cubed = 625
n cubed 是n的立方 ,会发现625不对。下一步跟踪程序执行步骤,找出程序如何得出这个答案。
程序状态
程序状态是在程序的执行过程中,某给定点上所有变量值的集合。它是计算机当前状态的一个快照。
跟踪程序状态的方法
方法1:把自己想象成计算机,跟着程序的步骤一步一步地执行。
方法2:定义语义错误的一种方法是:在程序的关键点插入额外的
printf()语句,以监视指定变量值的变化,通过查看值得变化可以了解程序的执行情况。方法3:使用调试器。调试器是一种程序,让你一步一步运行另一个程序,并检查该程序变量的值。
关键字和保留标识符
关键字是C语言的词汇。不能用它们作为标识符(如,变量名)。如果关键字使用不当(如,用关键字作为变量名),编译器会将其视为语法错误。
保留标识符,C语言已经指定了它们的用途或保留它们的使用权,不能用这些标识符来表示其他意思。保留标识符包括那些以下划线开头的标识符和标准库函数名。如printf()。
版权声明:本文为alpha66659原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。