博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++学习-2
阅读量:6711 次
发布时间:2019-06-25

本文共 1205 字,大约阅读时间需要 4 分钟。

副本机制

lambda不能取地址,无法当作函数指针

[1](2){3}(4)匿名lambda

1捕获列表   =只读    2后加mutable就可以修改副本

                                                     &读写              全部改变                                                  

对部分进行操作是,直接在[]放变量,用&代表读写,只写变量名只可读

=只能用于全部

想不只是改变副本,就加&,进行完全修改

const在C中是伪常量,防止直接,但是间接可以修改,通过地址改变

const在C++编译器自动优化替换,除了被赋予变量,编译器就不敢瞎修改变量的

const数组没有优化可以间接修改

指向常量的指针不能被修改,转一下(int*)

变量const 编译器无法优化

常量const  直接被优化,读取的时候直接在寄存器里面读,so常量的是不会改变的

在指针引用时   在2013 要括号    int(**(&po))=ptr  &和*都要()

左值引用只能搞对象

右值引用可以直接是常量  右值引用为了快速备份寄存器在内存中备份,而且在不需要时,被自动释放

左值引用完全为变量的别名

右值引用完全代替常量的别名

函数返回值有副本机制,返回变量

栈区,自动回收,释放,返回值为指针,不能指向栈区,返回引用,不可引用栈区

指针在栈区,指针指向内存在其他区域

只要使用引用,直接把变量名pb改成(&pb)就可以了

引用数组是非法的...

对引用来说必须是对齐的,不存在大到小的转换

数组名右边是大小,左边是类型

#include<iostream>

using namespace std;

void main()

{

         int i = 10;

         int *p = &i;

         int **pp = &p;

 

         int**&ppp = pp;

         int a[4]{1, 2, 3, 4};

         int *p[4]{a, a + 1, a + 2, a + 3};

         //int(*p1)[4](new int*[4]);

         int*p1=new int[4]{1, 2, 3, 4};

         cout << p1 << endl;

         int(*p)[2] = (new int[3][2]{

{ 1, 2 }, { 3, 4 }, { 5, 6 }});

         int(*&rp)[2] = p;

         for (int m = 0; m < 3;m++)

         {

                  for (int n = 0; n < 2; n++)

                          cout << rp[n][m];

                  cout << endl;

         }

         int(*p)[4] {new int[3][4]{

{ 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }}};

 

 

         int *p2(new int(5));

         const int * s = p2;

 

         const int a[3]{1, 2, 3};

转载于:https://www.cnblogs.com/tony-xu999/p/8573951.html

你可能感兴趣的文章
8-6测试总结
查看>>
输出九九乘法表(Python、Java、C、C++、JavaScript)
查看>>
Java IO ---学习笔记(字符流)
查看>>
shell date 获取昨天日期
查看>>
PHP正则表达式
查看>>
用来调整Windows 8外观的利器—Metro UI Tweaker
查看>>
WeX5和BeX5比较
查看>>
bzoj千题计划300:bzoj4823: [Cqoi2017]老C的方块
查看>>
检测项目
查看>>
【转】MMO即时战斗:地图角色同步管理和防作弊实现
查看>>
暑假初学知识笔记
查看>>
kindeditor.net应用
查看>>
Autofac的实例
查看>>
STL之vector
查看>>
【模板】Hash拉链法
查看>>
SQL系列(三)—— 注释(comment)
查看>>
C语言中 fputs() fgets() 的使用方法
查看>>
Bzoj3697 采药人的路径
查看>>
一步一步学Remoting之二:激活模式
查看>>
Python集合
查看>>