1. []

  这让我想到静态分配内存和动态分配内存,与数据名称无关

  局部变量和临时变量会储存在静态缓存区,随着程序运行完而消亡(例如在循环体中定义的局部变量随着循环体结束,局部变量也会消亡)。

  内存泄漏是指:就是内存驻留了指针存在了未指向的内存空间的地址值。

  例子:声明一个指针对象,指针指向的结果为对象在内存中动态分配的空间,其后在操作中又将另一对象的内存地址赋给它,最后没有对之前指针指向的内存空间进行delete.

int *old   = new int;
int *new = new int
//delete old
*old = *new
cout<<*old<<endl;

2. * 指针

  指针就是变量,在程序中将经常用到指针,其中应该理解:指针、内存地址值、位置、地址所在内存中的值

  int *point = new int(1);  //指针-*point   内存地址值-point   位置-point   地址所在内存中的值-1

3. &

  隐式指针, 在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,可提高程序执行效率和代码的健壮性!

  int a; int &ya=a; //定义了引用ya,它是变量a的引用(别名)      参考:C++中引用(&)的用法和应用实例

    ()&在此不是求地址运算,而是起标识作用。

  ()类型标识符是指目标变量的类型。

  ()声明引用时,必须同时对其进行初始化。

  ()引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。

   ra=; 等价于 a=;

  ()声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。故:对引用求地址,就是对目标变量求地址。&ra与&a相等。

  ()不能建立数组的引用。因为数组是一个由若干个元素所组成的集合,所以无法建立一个数组的别名。

  应用:

    1. 引用作为参数

    函数的传递方式有两种:传值、传址。 传值方式为C语言常见的,往往是将数据压入栈中(由编译器自动释放空间,栈的初始大小是由操作系统硬件决定),影响效率。如果是将引用作为参数传递,速度和效率不用说了.

    swap(a,b) 和swap(&a,&b);

4. new

  操作符动态分配内存。 通常情况下会声明一个指针,指针的值就是new操作符为某个数据类型动态分配一个足够大的内存空间。

5. const

  不容改变的

6. inline

  适当加入此修饰能提高程序的运行效率

  inline void getElements(DataType *data);

7. virtual

  此修饰符有点像多态的意思,当基类中的某函数被virtual修饰时(public),程序调用此函数,则会执行继承该基类的派生类中的方法。

  

class A
{
public:
A() {}
virtual void foo()
{
cout << "This is A." << endl;
}
};
class B : public A
{
public:
B() {}
void foo()
{
cout << "This is B." << endl;
}
};
int main(int argc, char* argv[])
{
A *a = new B();
a->foo();
if(a != NULL)
delete a;
return ;
}
excute: This is B.
 

C++ 运算符 [] & *、操作符new 修饰符const inline virtual的更多相关文章

  1. 修饰符const,static与readonly

    在c语言中,存储区可以分成代码区,全局区(用于存放全局变量和静态变量),常量区(用户存放常量),栈,堆. 首先介绍const,const是常量的标志,表示变量不可被修改.const变量,申明的时候就必 ...

  2. 作用域 {}代码块 const修饰符 引用

    简单分为:全局作用域.局部作用域.语句作用域 如果希望在局部变量的作用域内使用同名的全局变量,可以在该变量前加上“::” ::aver=20 #include<iostream> usin ...

  3. .NET 基础 一步步 一幕幕 [注释、命名规则、访问修饰符、数据类型、常量、变量]

    注释.命名规则.访问修饰符.数据类型.常量.变量 话说一个不会写注释的程序猿的不是一个好吃货,我们本篇就从注释开始说起好了. 在C#中有三种注释: 第一种:单行注释  以//开头,后面的就是注释内容 ...

  4. C#修饰符

    声明类的顺序: 访问修饰符+类修饰符 +class+类名 { 成员修饰符+ 成员类型 +成员名称; } C#中类及类型成员权限访问修饰符有以下四类:public,private,protected,i ...

  5. 理解C语言中几个常见修饰符

    写在前面 今天下午一个同事问「register」关键字是什么作用?噢,你说的是「register」啊,它的作用是……脑袋突然断片儿,我擦,啥意思来着,这么熟悉的陌生感.做C语言开发时间也不短了,不过好 ...

  6. C++变量内存分配及类型修饰符

    前言 了解C++程序内存分配,有助于深刻理解变量的初始化值以及其生存周期.另外,变量类型修饰符也会影响到变量的初始化值及其生存周期.掌握了不同类型变量的初始化值及其生存周期,能够让我们设计程序时定义变 ...

  7. ES6扩展——正则扩展(u、y修饰符)

    //下面三行代码效果一样 //全局匹配开头为a的 const regexp1 = /^a/g; const regexp2 = new RegExp('a','g'); const regexp3 = ...

  8. VUE3 之 多个 v-model 绑定及 v-model 修饰符的使用 - 这个系列的教程通俗易懂,适合新手

    1. 概述 洛克定律告诉我们: 当我们的目标很远大,远到我们都看不到终点时,放弃几率就会很大,就像跑马拉松比赛,由于时间长.距离长,很多选手都会选择在中途放弃. 其实有个好办法,就是拆分,把大目标拆分 ...

  9. 访问修饰符(public,private,protected,internal,sealed,abstract)

    为了控件C#中的对象的访问权限,定义对象时可以在前面添加修饰符. 修饰符有五种:private(私有的),protected(受保护的),internal(程序集内部的),public(公开的),以及 ...

随机推荐

  1. 保存登陆username和password

    在一些软件中登陆时保存username和password是常见的功能,它实现起来也特别简单,其原理就是在点击登陆button时推断是否勾选保存password选项,假设勾选,则在内存中保存一份包括us ...

  2. CentOS安装glibc-2.14(转)

    到http://ftp.gnu.org/gnu/glibc/下载glibc-2.14.tar.xz tar glibc-2.14.tar.gz cd glibc-2.14 mkdir build cd ...

  3. Redis使用经验

    首先,缓存的对象有三种: 1:数据库中单条的的数据(以表名跟id作为key永久保存到Redis),在有更新的地方都要更新缓存(不适用于需要经常更新的数据): 2:对于一些不分页,不需要实时(需要多表查 ...

  4. SpringMVC学习小结

    配置web.xml: <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-cl ...

  5. Oracle中sign/decode/nvl/round/trunc/(+)/instr/substr/replace解释

    1. sign函数 sign函数语法: sign(n); sign函数说明: 取数字n的符号,大于0返回1,小于0返回-1,等于0返回0(n可以是表达式,(n-200)) 例子: a=10; b=50 ...

  6. 采集Snoopy.class.php

    <?php /************************************************* Snoopy - the PHP net client Author: Mont ...

  7. 在云服务器上部署node.js服务器

    本文档介绍腾讯云·万象优图服务端nodejs的部署和集成,搭建一个nodejs+nginx为基础,对web端或者移动端提供http签名接口服务的例子程序.注意:本文档只是简单的示例,展示了服务端为终端 ...

  8. 探寻BTree 索引对sql 优化影响

    从一道题開始分析: 如果某个表有一个联合索引(c1,c2,c3,c4)一下--仅仅能使用该联合索引的c1,c2,c3部分 A where c1=x and c2=x and c4>x and c ...

  9. Vim进阶指南

    常用按键说明 按键 解释 移动光标 n+(Space) 向右移动n个字符 n+(Enter) 向下移动n行 nG 移动到第n行 gg 移动到第一行 G 移动到最后一行 0或Home键(Mac使用fn+ ...

  10. shared-service.ts

    shared-service.ts import { Observable } from 'rxjs/Observable'; import { Injectable } from '@angular ...