C++ 1

时间:2022-06-10 16:31:54

1 new 建立一个堆对象

new 类名(初值列表) 返回一个指针

int * p=new int(3)动态分配

2 delete  释放指针

delete p;

delete [] p ;释放动态申请的数组

3 new delete和 malloc free

malloc free属于c、c++标准库函数 new delete属于操作符

malloc free只针对内部数据类型的对象;new delete 动态创建的对象

4 const 常量附值时必须初始化

5  引用和指针

int a; int& p; int* q; a=p; q=&a;

p是引用,q是地址

指针在没用给地址之前,不能直接附值

6 函数参数传递

值传递 地址传递 引用传递

值传递 地址传递 只是传递一个副本,所以传递应该是指针的指针

引用传递是传递本身

7 局部数组 和全局数组

char * stra()

{  char *c=new char(10);return c;  }  // 局部变量存的是一个*c,即4B字节的指针,它指向的内容存储在全局存储区内,返回当前指针,可以操作其指向的内容

char * stra()

{  char c[]=new char(10);return c;  } // 局部变量存的是 一个数组 占10个字节,返回指针后,存储内容可能被回收,返回指针没有意义

8 指针和句柄

指针是标记某个物理地址

句柄则是标记系统资源,隐藏系统信息。句柄地址(32位整数)——》对象在内存中的地址(不稳定)——》实际对象

随机推荐

  1. VS创建MVC出错解决方法

    搞定

  2. 移动端手势库Hammer.js学习

    感觉移动端原生支持的 touch.tap.swipe 几个事件好像还不够用,某些时候还会用到诸如缩放.长按等其他功能. 近日学习了一个手势库 Hammer.js,它是一个轻量级的触屏设备手势库,能识别 ...

  3. 使用连接(JOIN)来代替子查询(Sub-Queries) mysql优化系列记录

    使用连接(JOIN)来代替子查询(Sub-Queries) MySQL从 4.1开始支持SQL的子查询.这个技术可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查 ...

  4. Java Web安全之程序逻辑缺陷

    Java Web程序逻辑缺陷本质是由于程序设计和开发者设计的程序执行逻辑存在某种缺陷而导致的安全隐患.企业的代码审查和渗透测试通常主要针对的大多是诸如xss攻击和sql注入和跨站点脚本这些头条式漏洞, ...

  5. ViewModel学习

    ViewModel是一个负责准备和管理Activity或Fragment数据的类.它还处理Activity / Fragment与应用程序其余部分的通信(例如,调用业务逻辑类). 始终与范围(Frag ...

  6. Flutter 布局(七)- Row、Column详解

    本文主要介绍Flutter布局中的Row.Column控件,详细介绍了其布局行为以及使用场景,并对源码进行了分析. 1. Row A widget that displays its children ...

  7. java基本语法、标识符、关键字

    基本语法 编写Java程序时,应注意以下几点: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的. 类名:对于所有的类来说,类名的首字母应该大写.如果类名由若干单词组 ...

  8. Springmvc常见问题

    问题一:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userCont ...

  9. Linux命令之乐--sed

    sed是stream edit的缩写,是处理文本非常重要的工具. 常见用法: 1. 替换文本 1.1 替换文本中的第一处符合的样式 sed 's/pattern/replace_string' fil ...

  10. MySQL Transaction--快照读和当前读

    在MySQL读取数据时可以按照是否使用一致性非锁定读来分为快照读和当前读:1.快照读:MySQL使用MVCC (Multiversion Concurrency Control)机制来保证被读取到数据 ...