C语言学习记录-nogood程序,关键字和保留标识符

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版权协议,转载请附上原文出处链接和本声明。