c++(一) :从c到c++

1.bool类型,值取true和false.

2.const 常量标识符

c++(一) :从c到c++
//const int a;  // error,常量必须初始化
const int a = 100;
// a = 200;    // error,不能对常量赋值

const int * p // 定义了一个指向常量的指针变量(*p是常量)
int * const p2 = &a; // p2是常量,需初始化

/* const常量与#define定义的符号常量的区别
* 1.const定义的常量有类型,而#define定义的没有类型,编译可以对前者进行安全检查,对后者只是 * 做简单替换
* 2.const常量在编译时分配内存,#define定义的在预编译进行替换,不分配内存
* 3.作用范围不同,前者作用域为变量的作用域,后者从定义点到程序结束(也可用#undef取消)
*/

// 尽量用const、enum代替#define
c++(一) :从c到c++

3.内存对齐

  • 是什么:1.编译器为每个“数据单元”安排在某个合适的位置上. 2.c,c++允许干涉内存对齐
  • 为什么:在对齐的内存空间上能更快的访问数据
  • 怎么用:

4.域运算符::

c++(一) :从c到c++
// 用法1:对与局部变量同名的全局变量进行访问
#include <iostream>
using namespace std;

int var = 100;
int main()
{
    int var = 50;
    cout << var <<endl;   // 50
    cout << ::var << endl; // 100
}
c++(一) :从c到c++

 

5.new与delete

  • new用于创建堆空间,成功返回首地址, 用法:
  • delete 释放堆空间
    c++(一) :从c到c++
    // new:分配内存,调用构造函数
    int *p;
    p = new int;
    char *p_str = new char[50];
    
    // delete:调用析构函数,释放内存
    delete [] p_str;
    delete p;
    c++(一) :从c到c++

6.重载:函数名相同,参数不同(数量,类型,顺序)

7.引用:

  • 就是给一个变量起别名(引用不是变量,只是变量的别名)
    int a = 100;
    int &b = a; // b是a的别名
    b = 200;
    cout << b <<" " << a << endl; // 200 200
  • 引用没有自己的空间
  • 对引用的改变相当于对原变量的改变

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c++(一) :从c到c++,布布扣,bubuko.com

c++(一) :从c到c++

上一篇:如何在mpvue下收集小程序的formId


下一篇:javascript闭包传参和事件的循环绑定