经常看到一些例子中的函数参数或其他的什么声明成const.我知道是静态类型变量,可是还是搞不明白什么时候要用,什么时候可以不用.例如,有个函数是这样声明的:
void LoadFile(const char* pszFileName).它是用来将一个图形文件读入内存的.如果我不用const会不会发生什么错误呢,比如pszFileName内存被覆盖,为什么呢?

解决方案 »

  1.   

    作为函数参数用const,在函数实体内此参数不能被修改(重付值)
    我个人认为上例可以不用,影响不大。
      

  2.   

    const的作用是阻止修改变量值,比如:const char * pszFileName;pszFileName[0]='\0';
    这样编译器会对上面的语句产生一个编译错误,仅此而已。把const变量改为非const不会对执行结果产生任何变化,甚至编译器产生的机器码也完全相同,区别是,原来编译器能够发现的错误,改为非const后就不能发现了。