C++ 添加了一些全新的关键字。

1、new

    new 来进行动态内存的分配,而delect 则是进行内存的释放,

申请的方式:


变量申请:
int *p = new int; // 申请开辟一块四个字节的内存空间,一个 int 型的空间
delect p; // 删除的是变量


 

数组申请:
int *p = new int[5] // 开辟一个大小为 5个 的整型的数组空间
delect [] p; // 删除的是数组

    申请的空间一般是没有经过初始化的,如果需要初始化的话,就要申请的方式变为:

int *P = int[5]();

    添加了 ()的话,申请的内存空间就会被初始化为零,原因是添加了括号,就会调用 new 的构造函数。

 

new 和 malloc 区别:

    (1)new 是C++的,malloc 是C库提供的函数

    (2)new 以具体类型为单位进行内存的分配,malloc 只能以字节为单位进行内存的分配

    (3)new 在申请单个类型变量时可以直接进行初始化,malloc 不具备内存初始化的特性


申请单个类型的时候,直接进行初始化:
int *p = new int(1);
printf("*p = %d\n", *p);
delete p;

    可见,申请具体类型的时候,直接初始化为“1”,

2、命名空间

    其实就是相同的名字,根据使用的区域进行划分,解决名称冲突的问题,


命名空间的定义:
命名空间的定义:
namespace first
{
int i = 0;
}
namespace second
{
int i = 1;
namespace third
{
int j = 3;
}
}


使用:

使用整个命名空间  using namespace name;

使用命名空间的变量 : using name :: 变量

使用默认的命名空间的变量: :: 变量

使用:
using second::i;
printf("i = %d\n", i);
using second::i;
printf("i = %d\n", first::i);
using second::third::j;
printf("j = %d\n", j);

3、强制类型转换

    好几个关键字,不想看,

4、指针和引用的区别

    指针是一个变量,其值是一个内存的地址,,通过指针访问对用内存地址中的值

    引用只是一个变的新的名字,所有对引用的操作,都会被传递到被引用的变量上,

    指针就是变量,不需要进行初始化,也可以指向不同的地址

    引用天生在定义的时候,就被初始化,之后不能再引用其他的变量、

5、extern “C”的分析:为什么C不支持函数的重载

  extern “C”是告诉编译器,里面的内容是要按照C的方式进行编译,而C++编译的方式和C的编译的方式,对于函数的编译的方式,他们只在对函数名编译的方式不一样,也就是说,它们各自的编译器对函数名命名的方式不一样,而函数体内部的编译方式,其实是一样的,

    C++编译器: 对函数名会添加一些参数的信息,所以可以支持函数的重载

    C编译器 : 对函数名不会添加一些参数的信息,所以不支持函数的重载,

3、C++新的关键字的更多相关文章

  1. 我在阿里这仨月 前端开发流程 前端进阶的思考 延伸学习的方式很简单:google 一个关键词你能看到十几篇优秀的博文,再这些博文中寻找新的关键字,直到整个大知识点得到突破

    我在阿里这仨月 Alibaba 试用期是三个月,转眼三个月过去了,也到了转正述职的时间.回想这三个月做过的事情,很多很杂,但还是有重点. 本文谈一谈工作中遇到的各种场景,需要用到的一些前端知识,以及我 ...

  2. ios开发ios9新特性关键字学习:泛型,逆变,协变,__kindof

    一:如何去学习?都去学习什么? 1:学习优秀项目的设计思想,多问几个为什么,为什么要这么设计,这么设计的好处是什么,还能不能在优化 ,如何应用到自己的项目中 2:学习优秀项目的代码风格,代码的封装设计 ...

  3. iOS 新特性关键字

    1.用来修饰属性,或者方法的参数,方法的返回值 /** nullable:表示可以传空 */ //@property (nonatomic, strong, nullable) NSString *n ...

  4. 【C++第三课】---新的关键字

    一.动态分配内存的时的关键字 注意在C++中和C不一样的是,在C中使用的malloc来动态分配内存,而这个malloc只是标准C库的调用,所以这个不属于标准C的范畴,而在C++ 中却有真正的关键字来分 ...

  5. IOS9 新加关键字 nullable、nonnull、null_unspecified、null_resettable

    #import "ViewController.h" @interface ViewController () @property(nonatomic,nullable)NSStr ...

  6. UWP win10 app 新关键字x:Bing

    原本使用MVVM开发,我们使用数据绑定是x:Binging 新的关键字x:Bing使用和原来x:Binging区别不大. <TextBox x:Name="textBox" ...

  7. 如何让Sublime Text编辑器支持新的ABAP关键字

    ABAP 7.40推出了许多新的关键字 - keyword,您的Sublime Text可能无法针对这些新关键字实现期望的语法高亮显示(syntax highlight)或者自动完成(auto com ...

  8. 利用ABAP 740的新关键字REDUCE完成一个实际工作任务

    ABAP 740从2013年发布至今已经过去很长的时间了,下面这张图来自SAP社区博客: ABAP News for Release 7.40 – What is ABAP 7.40? 图中的ABAP ...

  9. C# 3.0新语言特性和改进(一)

    引言 关于C#3.0的特性,园子里已经有了一大把,可能大家都很熟悉了,虽然本人开发中使用过,但自己还是需要记录一下,总结一下.同时也是后面写Linq知识的基础.希望有兴趣的朋友,可以看看. C# 3. ...

随机推荐

  1. [hdu5307] He is Flying [FFT+数学推导]

    题面 传送门 思路 看到这道题,我的第一想法是前缀和瞎搞,说不定能$O\left(n\right)$? 事实证明我的确是瞎扯...... 题目中的提示 这道题的数据中告诉了我们: $sum\left( ...

  2. swarm 发布服务

    1.发布服务 2.发布服务 服务发现:Swarm模式内置DNS组件,自动为每个服务分配DNS记录,然后服务的DNS名称在集群内的服务直接分发请求.负载均衡:在Swarm集群中创建服务时,Ingress ...

  3. 封装一个类似jquery的ajax方法

    //封装一个类似jquery的ajax方法,当传入参数,就可以发送ajax请求 //参数格式如下{ // type:"get"/"post", // dataT ...

  4. 【HDOJ5514】Frogs(容斥原理)

    题意:n个青蛙在一个有m个节点的圆上跳,m个节点的标号为0-m-1,每只青蛙每次跳的节点数给出,让求n只青蛙所跳位置标号之和 n<=1e4,m<=1e9,a[i]<=1e9 思路:由 ...

  5. 【LA5059】Playing With Stones (SG函数)

    题意:有n堆石子,分别有a[i]个.两个游戏者轮流操作,每次可以选一堆,拿走至少一个石子,但不能拿走超过一半的石子. 谁不能拿石子就算输,问先手胜负情况 n<=100,1<=a[i]< ...

  6. http://store.microsoft.com/home.aspx

    原文发布时间为:2009-07-26 -- 来源于本人的百度文章 [由搬家工具导入] http://store.microsoft.com/home.aspx

  7. poj 3254 Corn Fields 状压dp入门

    题目链接 题意 在\(M\times N\)的\(0,1\)格子上放东西,只有标记为\(1\)的格子可以放东西,且相邻的格子不能同时放东西.问有多少种放法. 思路 参考:swallowblank. \ ...

  8. loj 6278 6279 数列分块入门 2 3

    参考:「分块」数列分块入门1 – 9 by hzwer 2 Description 给出一个长为\(n\)的数列,以及\(n\)个操作,操作涉及区间加法,询问区间内小于某个值\(x\)的元素个数. 思 ...

  9. 解决waitfor()阻塞问题

    运行代码执行exe,shell这样的程序或脚本再java中需: (1) 使用Runtime的exec()方法 (2) 使用ProcessBuilder的start()方法 Runtime和Proces ...

  10. hdu 2680(最短路)

    Choose the best route Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...