在花括号里定义的变量就是局部变量,反之就是全局变量
这里举个例子
这时我们在进行编译时会报错告诉我们y没定义
这其实就是因为局部变量只能在它所定义的那个花括号使用,一旦出了花括号,这个变量就会被销毁
说明一下上面的解释有些不准确,并非所有变量都是auto,只有局部变量才会看为auto
auto是一个比较古老的关键词,用来修饰局部变量,它的存在就是说明该变量只在这个花括号内使用。其实对于我们来说,已经很少见到这个关键词了,因为我们会默认局部变量前面有auto,通常不写出来
但为什么是修饰局部变量的呢,看下面的例子
对于auto的结论
很老,基本永不使用,当然这是在c语言中,如果在c++中auto的使用会不同,这里就不详细说啦
这里来谈一谈储存器,常见的储存器像寄存器,cache,内存,硬盘…这些储存器离cpu越远其储存内容越大但效率越低
rejister的作用就是尽量将所修饰的变量放入CPU寄存器中,从而达到提高效率的目的
当然,并非所有变量都能使用register来“加速”
总结
%95以上的概率不会使用,早期人们需要手动优化程序,但现在编译器已经很智能了,不再需要手动优化。所以,该关键字不用管