范围for
int a[] {1,2,3,4,5,6};
for(auto &x: a) {
cout << x << endl;
}
面试题:内存分区
栈区:存放临时变量,编译器自动分配和释放。
栈区:用malloc/new分配, 用free/delete释放,忘记释放,系统回收。
全局/静态存储区:放全局变量和静态变量static。程序结束时候系统释放。
常量存储区:”I am abc”
程序代码区
demo:
int *myInt = new int;
int *myInt = new int(222);
int *pa = new int[111];
delete pa[];
nullptr
使用nullptr避免指针和整型的混淆。
nullptr也代表空指针 【int p = nullptr; // 不可以】 【int *p = nullptr;】
null就是0 【int a= NULL =》int a = 0;】
char *p = NULL;
char *q = nullptr;
int *a = nullptr;
if(p == nullptr) {
cout << "NUL == NULLPTR" << endl;
}
if(q == NULL) {
cout << "q == NULL" << endl;
}
cout << typid(NULL).name << endl;
cout << typid(nullptr).name << endl;