这段时间在看《C语言程序设计 现代方法(第二版)》。本身作为C#出身,在学校的时候也没有接触过C。因为程序员中级职称考试的语言没有C#,所以自学C。在学习过程中,体会到了一些在C#中也存在但是没用过的东西。
1.for循环:
在C#中,习惯于这么写:
1 for (int i = 10; i > 0; i--) 2 { 3 Console.WriteLine(i.ToString()); 4 }
看了C才知道,原来可以省略表达式:
//省略表达式 int j = 0; for (; j < 10; j++) { Console.WriteLine(j.ToString()); } for (; j < 10; ) { Console.WriteLine(j.ToString()); j++; } //感觉while比较好一点 for (; ; ) { if (j < 10) { Console.WriteLine(j.ToString()); } j++; }
2.递归:传统的递归都是自己调用自己。在书中P150,第九章的“问与答”中
问:如果函数f1调用函数f2,而函数f2又调用了函数f1,这样合法吗?
答:是合法的。这是一种间接递归的形式,即函数f1的一次调用导致了另一次调用。(但是必须确保函数f1和函数f2最终都可以终止!)
今天就先说这么多。