const 和 #define区别

1 篇文章 0 订阅
(1) 编译器处理方式不同

  define宏是在预处理阶段展开。

  const常量是编译运行阶段使用。

(2) 类型和安全检查不同

  define宏没有类型,不做任何类型检查,仅仅是展开。

  const常量有具体的类型,在编译阶段会执行类型检查。

(3) 存储方式不同

  define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。

  const常量会在内存中分配(可以是堆中也可以是栈中)。

 

(4)const 可以节省空间,避免不必要的内存分配。例如:  
       #define PI 3.14159 //常量宏  
       const doulbe Pi=3.14159; //此时并未将Pi放入ROM中......  
       double i=Pi;//此时为Pi分配内存,以后不再分配!  
       double I=PI;//编译期间进行宏替换,分配内存  
       double j=Pi;//没有内存分配  
       double J=PI;//再进行宏替换,又一次分配内存!  
       const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而 #define定义的常量在内存中有若干个拷贝。 
(5) 提高了效率。编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。


转载 fenglovel的博客

letlet关let关键let关键字let关键字的let关键字的作let关键字的作用let关键字的作用是let关键字的作用是什let关键字的作用是什么let关键字的作用是什么? let关键字的作用是什么? constlet关键字的作用是什么? const和let关键字的作用是什么? const和letlet关键字的作用是什么? const和let是let关键字的作用是什么? const和let是ESlet关键字的作用是什么? const和let是ES6let关键字的作用是什么? const和let是ES6新增let关键字的作用是什么? const和let是ES6新增的let关键字的作用是什么? const和let是ES6新增的关let关键字的作用是什么? const和let是ES6新增的关键let关键字的作用是什么? const和let是ES6新增的关键字let关键字的作用是什么? const和let是ES6新增的关键字,let关键字的作用是什么? const和let是ES6新增的关键字,用let关键字的作用是什么? const和let是ES6新增的关键字,用于let关键字的作用是什么? const和let是ES6新增的关键字,用于声明let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。constlet关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而letlet关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,constlet关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和letlet关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可变let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可变性let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可变性,let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可变性,提let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可变性,提高let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可变性,提高代码let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可变性,提高代码的let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可变性,提高代码的可let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可变性,提高代码的可读let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可变性,提高代码的可读性let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可变性,提高代码的可读性和let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可变性,提高代码的可读性和可let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可变性,提高代码的可读性和可维let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可变性,提高代码的可读性和可维护let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可变性,提高代码的可读性和可维护性let关键字的作用是什么? const和let是ES6新增的关键字,用于声明变量。const声明的变量是常量,一旦被声明赋值后,就不能再被修改。而let声明的变量可以被重新赋值,但只在声明的块级作用域内有效。在开发中,const和let的使用能够帮助我们更加清晰地控制变量的作用范围和可变性,提高代码的可读性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值