指针

- 指针的基本操作间接引用指针所指向的对象

- 机器一般按字节寻址,所以能够独立分配的最小空间是1字节,也就是说指针指向的

最小空间为1字节。特别地,对于bool变量,虽然实际需要的是1bit,但其大小是1字节。

如果需要更小的空间,可以使用按位运算或者位域

数组

- char*可以用字符常量来初始化,字符常量是静态存储,存放在字符常量区,所以不可以char*

修改char*指向的内容

- 字符数组也可以用字符常量来初始化,但是字符数组存放的是字符常量的一个拷贝,存储在栈上,

所以可以修改字符数组的内容

- 数组作为函数参数时退化为指针:

void func(int * pi)
{
cout << "in func : " << sizeof(pi) << endl;
} int main()
{
int vec[] = {};
cout << "in main : " << sizeof(vec) << endl; func(vec);
} //输出
// in main : 12
// in func : 4

常量

- 不允许对常量赋值,所以定义常量时必须初始化

- 但是,定义常量时不一定为常量分配内存,视编译器具体实现而定

const int c1 = ;
const int c2 = ;
//编译期编译器知道c1、c2的值,可以进行常量折叠,也就是说,直接
//用具体数值1、2代替c1、c2,所以不需要内存 const int c3 = f();
//对于常量c3,编译器并不知道它存放的数据,不能进行常量折叠,
//所以需要内存 //另外,如果对常量进行取地址操作就必须分配内存
const int *p = &c2; //需要为c2分配内存

- 指针常量和常量指针(从右往左读,*号左边内容就是指针指向的类型)

const int *p1;    //p1是一个指针,指向const int
int *const p2; //p2是一个const指针,指向int

引用

- 不可以修改引用指向的对象,定义时必须初始化

- 对引用进行取地址返回的是引用指向的对象的地址

- T &只能用T类型的左值来初始化

- const T&可以不用左值,甚至不需要T类型来初始化

不是T类型时,需要一个到T类型的隐式类型转换

不是左值时,先创建一个临时变量,再用临时变量来初始化引用类型

- 返回引用类型的函数可以作为左值或者右值

int a = ;
//int &i1 = 2; //error
const int &i = ;
const myInt &mi = a; //a不是myInt类型,但a可以隐式类型
//转换到myInt
const myInt &mi1 = ; //2不是左值

C++基础-01的更多相关文章

  1. javascript基础01

    javascript基础01 Javascript能做些什么? 给予页面灵魂,让页面可以动起来,包括动态的数据,动态的标签,动态的样式等等. 如实现到轮播图.拖拽.放大镜等,而动态的数据就好比不像没有 ...

  2. Androd核心基础01

    Androd核心基础01包含的主要内容如下 Android版本简介 Android体系结构 JVM和DVM的区别 常见adb命令操作 Android工程目录结构 点击事件的四种形式 电话拨号器Demo ...

  3. java基础学习05(面向对象基础01)

    面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...

  4. Linux基础01 学会使用命令帮助

    Linux基础01 学会使用命令帮助 概述 在linux终端,面对命令不知道怎么用,或不记得命令的拼写及参数时,我们需要求助于系统的帮助文档:linux系统内置的帮助文档很详细,通常能解决我们的问题, ...

  5. 可满足性模块理论(SMT)基础 - 01 - 自动机和斯皮尔伯格算术

    可满足性模块理论(SMT)基础 - 01 - 自动机和斯皮尔伯格算术 前言 如果,我们只给出一个数学问题的(比如一道数独题)约束条件,是否有程序可以自动求出一个解? 可满足性模理论(SMT - Sat ...

  6. LibreOJ 2003. 「SDOI2017」新生舞会 基础01分数规划 最大权匹配

    #2003. 「SDOI2017」新生舞会 内存限制:256 MiB时间限制:1500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据   题目描述 ...

  7. java基础 01

    java基础01 1. /** * JDK: (Java Development ToolKit) java开发工具包.JDK是整个java的核心! * 包括了java运行环境 JRE(Java Ru ...

  8. 081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字

    081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字 本文知识点:new关键字 说明:因为时间紧张,本人写博客过程中只是 ...

  9. 080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则

    080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则 本文知识点:单一职责原则 说明:因为时间紧张,本人写博客过程中只是 ...

  10. 079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象

    079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象 本文知识点:实例化对象 说明:因为时间紧张,本人写博客过程中只是对知 ...

随机推荐

  1. 启动kafka出现找不到或无法加载主类

    首先确认下环境变量配置是否成功. 如果配置成功<javac,javah>都没有问题,那就有可能是你安装了两个版本的jdk导致的,都卸载了,然后换一个目录按照一个jdk 在配置环境变量试下!

  2. django--静态文件(九)

    1.要加载静态文件需要配置: setting.py BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) STA ...

  3. 《Linux企业应用案例精解(第2版)》新书发售啦

    本书在出版当年就获得了不错的销量,同时被中国科学院国家科学图书馆.中国国家图书馆.首都图书馆.清华大学.北京大学等上百所国内综合性大学图书馆收录为馆藏图书,在IT业界赢得了良好的口碑.随后2012年年 ...

  4. 【MySQL】 GTID使用

    参考:http://hcymysql.blog.51cto.com/5223301/1579197 参考:http://blog.itpub.net/29733787/viewspace-146255 ...

  5. VMware中装Win2012并配置Hyper-v

    VMware中装配Win2012再配置Hyper-v,解决虚拟机监控程序已经在运行中的方法 找到虚拟机存放的位置,用记事本打开Windows Server 2012.vmx,在最后添加两行并保存: h ...

  6. 排序算法(JAVA)

    import java.util.Random;      /**  * 排序测试类  *   * 排序算法的分类如下:  * 1.插入排序(直接插入排序.折半插入排序.希尔排序):  * 2.交换排 ...

  7. Linux内核分析——汇编代码执行及堆栈变化

    张潇月<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验步骤 首先借助实验楼这个平台进入Linux ...

  8. 如何禁止 Mac OS X 在外接设备上生成 .DS_Store 文件?以及如何批量删除 .DS_Store 文件?

    如何禁止 Mac OS X 在外接设备上生成 .DS_Store 文件?以及如何批量删除 .DS_Store 文件?原文链接:http://www.java2class.net/bbs/viewthr ...

  9. Linq的一些很方便的方法

    Aggregate Aggregate我用的最多的地方就是拼接字符串,打个比方来说,如果有数组,想要的结果是在他们之间插入一个","然后返回拼接以后的新字符串. 常规的做法是: L ...

  10. openfire 连接sqlserver 2008 的一个问题

    由于本人的笨拙,搞了一天才终于搞好,说实在的问题归根结底还是在sql上,要相信openfire是没问题的.好了,不瞎扯了,说正题. 本人的机器环境为:win7.sqlserver 2008.jdk1. ...