《C陷阱与缺陷》笔记
变量的定义位置
先上一段看来比较正常的代码:
#include<stdio.h>
#include<stdlib.h>
int main(void){
printf("Tim\n");
int a = 10;
printf("a = %d\n",a);
system("pause");
return 0;
}
由于我的环境是VisualStudio2013,所以上述程序可以完美执行,并且是编译0警告通过,但是在VisualStudio2008的环境下这样写是完全错误的,C89规定,在任何执行语句之前,在块的开头声明所有局部变量。但是在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。例如下面的写法对于C89标准才是正确的:
#include<stdio.h>
#include<stdlib.h>
int main(void){
printf("sssssssss\n");
{
int a = 10;
printf("a = %d\n", a);
}
system("pause");
return 0;
}
当然为了达到更好兼容性,建议都把局部变量写在代码块的开始位置!!
这是几个由二维数组构成的迷宫,简单的迷宫,多通路不带环的迷宫,多通路带环的迷宫!对于简单迷宫我们需要判断是否有出口!对于多通路不带环的迷宫我们需要确定出口并且判断最短路径,对于通路间带环的迷宫我们需要找出最短路径!