1.变量的声明、定义、初始化
一个程序可由多个源文件实现。
变量可以多次声明,但只能被定义一次。
声明通过extern关键字实现。
extern int i; //声明
int j; //定义
2.变量的内存存放
全局变量与局部变量在没有初始化时,取初值的方式不同。前者是全0.
c++内存分为代码、堆、栈、常量和全局//静态存储区。
不同变量的存储位置:
全局/静态存储区——全局变量,static变量;
栈——局部变量、函数调用时的参数。栈的容量一般比较有限;
堆——new运算符分配,需由delete释放;若分配失败,new返回NULL,记得安全性检查。
常量存储区——这是一块比较特殊的存储区,里面存放的是常量。
3.标示符的作用域
for(int i=0;i<10;i++){//i仅在这里和for小括号内有效}
c++中大多数作用域都以大括号分隔。
:: 类的作用域分辨符
#include<iostream> using namespace std; void show(){cout<<"hello";} class A{ public: static void show(){cout<<"hi ";} static void fun(){ show(); //成员函数 ::show(); //全局函数 } }; int main(int argc, char** argv) { A::fun(); return 0; } /*hi hello*/
4.内联函数
函数的调用是有开销的。比如:保存CPU环境、实参到形参的传递、函数执行完返回、恢复CPU环境。而使用inline函数可以达到空间换时间的效果。它告诉编译器把此函数插入到调用的地方去。
关键字inline 必须与函数定义体放在一起才能使函数成为内联,仅将inline 放在函数声明前面不起任何作用。
如下风格的函数Foo 不能成为内联函数:
inline void Foo(int x, int y); // inline 仅与函数声明放在一起
void Foo(int x, int y){}
而如下风格的函数Foo 则成为内联函数:
void Foo(int x, int y);
inline void Foo(int x, int y) // inline 与函数定义体放在一起{}
所以说,inline 是一种“用于实现的关键字”,而不是一种“用于声明的关键字”。
时间: 2024-09-20 22:55:57