1.命名空间

所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定

义于一个名为std的namespace中。

命名空间std封装的是标准程序库的名称,标准程序库为了和以前的头文件区别,一般不加".h"。

标准C++引入了关键字namespace(命名空间/名字空间/名称空间/名域),可以更好地控制标识符的作用域。

2.总结

1)  当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这

样才能正确使用cout。若不引入using namespace std ,需要这样做。std::cout。

2)  c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。

3)  C++命名空间的定义:  namespace name { … }

4)  using namespace NameSpaceA;
5)  namespce定义可嵌套。

3.C++三⽬运算符功能增强

1)C语言返回变量的值 C++语言是返回变量本身C语言中的三目运算符返回的是变量值,不

能作为左值使用 C++中的三目运算符可直接返回变量本身,因此可以出现在程序的任何地方 。

2)注意:三目运算符可能返回的值中如果有一个是常量值,则不能作为左值
使用 (a < b ? : b )= 30;

4.新增bool类型关键字

C++在C语⾔的基本类型系统之上增加了bool;

C++中的bool可取的值只有true和false理论上bool只占⽤⼀个字节,

如果多个bool变量定义在⼀起,可能会各占⼀个bit,这取决于编译器的实现

true代表真值,编译器内部⽤1来表⽰;

false代表⾮真值,编译器内部⽤0来表⽰。

5. const增强

#include    <iostream>
int main(void)
{
//const 定义常量---> const 意味只读
const int a;
int const b;
//第⼀个第⼆个意思⼀样 代表⼀个常整形数
const int *c;
//第三个 c是⼀个指向常整形数的指针(所指向的内存数据不能被修改,但是本⾝可以修改)
int * const d;
//第四个 d 常指针(指针变量不能被修改,但是它所指向内存空间可以被修改)
const int * const e ;
//第五个 e⼀个指向常整形的常指针(指针和它所指向的内存空间,均不能被修改)
return ;
}

C++中的const修饰的,是一个真正的常量,而不是C中变量(只读)。在const修饰的常量编译期间,就已经确定下来了

(1).C语言中的const变量
 C语言中const变量是只读变量,有自己的存储空间
(2).C++中的const常量
可能分配存储空间,也可能不分配存储空间
当const常量为全局,并且需要在其它文件中使用,会分配存储空间
当使用&操作符,取const常量的地址时,会分配存储空间
当const int &a = 10; const修饰引用时,也会分配存储空间

(3).修改const修饰的常量值(在C++中)

在C语言中,const变量只不过是修饰该变量名,它并不能使内存变为只读。也就是说,

我们不能通过变量名再去操作这块内存。但是可以通过其它方法,如指针,通过指针

是可以修改被const修饰的那块内存的。

void test()
{
const int a = ; //修饰一个变量只读
char *p = NULL;
*p = &a; //想要修改一个常量的值,编译器先开辟一个临时变量空间
*p = ; //修改时,改变的是临时变量的值,并不是const int a的值 cout<<"a = %d"<<a<<endl;
cout<<"*p = %d"<<*p<<endl;
}

6.枚举

c 语言中枚举本质就是整型,枚举变量可以用任意整型赋值。而 c++中枚举
变量, 只能用被枚举出来的元素初始化。

#include<iostream>
using namespace std;
enum season
{
SPR,
SUM,
AUT,
WIN
};
int main()
{
enum season s = SPR;
//s = 0; //error,但是C语⾔可以通过
s = SUM;
cout<<"s= "<< s<<endl;//
return ;
}

1.C++基础(C、C++)的更多相关文章

  1. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  2. node-webkit 环境搭建与基础demo

    首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...

  3. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  4. Golang, 以17个简短代码片段,切底弄懂 channel 基础

    (原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...

  5. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  6. HTTPS 互联网世界的安全基础

    近一年公司在努力推进全站的 HTTPS 化,作为负责应用系统的我们,在配合这个趋势的过程中,顺便也就想去搞清楚 HTTP 后面的这个 S 到底是个什么含义?有什么作用?带来了哪些影响?毕竟以前也就只是 ...

  7. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  8. .NetCore MVC中的路由(1)路由配置基础

    .NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...

  9. .NET基础拾遗(5)多线程开发基础

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...

  10. .NET 基础 一步步 一幕幕[面向对象之方法、方法的重载、方法的重写、方法的递归]

    方法.方法的重载.方法的重写.方法的递归 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值 ...

随机推荐

  1. (转)http authorization 基本认证

    转:https://www.cnblogs.com/chenrong/articles/5818498.html http协议是无状态的, 浏览器和web服务器之间可以通过cookie来身份识别. 桌 ...

  2. 论文阅读笔记四十:Deformable ConvNets v2: More Deformable, Better Results(CVPR2018)

    论文源址:https://arxiv.org/abs/1811.11168 摘要 可变形卷积的一个亮点是对于不同几何变化的物体具有适应性.但也存在一些问题,虽然相比传统的卷积网络,其神经网络的空间形状 ...

  3. Django web框架

    urls的配置 views视图函数 tempalte模板 settings的配置 Django目录结构分析 Django主线 Django-model基础 Django-model聚合查询与分组查询 ...

  4. Invalid tld file: "/WEB-INF/tags/xxxt.tld", see JSP 2.2 specification section 7.3.1 for more details

    错误描述 在jsp页面引入了自定义的TLD文件的时候,碰到了一个错误 Invalid tld file: "/WEB-INF/tags/xxxt.tld", see JSP 2.2 ...

  5. numpy的基础运算-【老鱼学numpy】

    概述 本节主要讲解numpy数组的加减乘除四则运算. np.array()返回的是numpy的数组,官方称为:ndarray,也就是N维数组对象(矩阵),N-dimensional array obj ...

  6. SparkCore | Rdd| 广播变量和累加器

    Spark中三大数据结构:RDD:  广播变量: 分布式只读共享变量: 累加器:分布式只写共享变量: 线程和进程之间 1.RDD中的函数传递 自己定义一些RDD的操作,那么此时需要主要的是,初始化工作 ...

  7. k个一组翻转链表

    给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序. 示例 : 给定这个链表: ...

  8. 使用Redis构建全局并发锁

    谈起Redis的用途,小伙伴们都会说使用它作为缓存,目前很多公司都用Redis作为缓存,但是使用Redis仅仅作为缓存未免太大材小用了.深究Redis的原理后你会发现它有很多用途,在很多场景下能够使用 ...

  9. 横向滑动的listview和其中用到的触摸监听事件详解

    一.首先把横向的listview的代码放上来 HorizontalListView: package com.common.cklibrary.utils.myview; import java.ut ...

  10. 问题集 & 知识点

    芝士 [事件绑定的三种方法] 在以类继承的方式定义的组件中,为了能方便地调用当前组件的其他成员方法或属性(如:this.state),通常需要将事件处理函数运行时的 this 指向当前组件实例. 绑定 ...