第一、二章
来源:互联网 发布:淘宝职业退货师被抓 编辑:程序博客网 时间:2024/05/16 06:50
1. cin原来也可以以空格间隔输入(输入包括string)
2.键盘上Ctrl+Z,可以表示文件结束符
3.文件重定向addItem <infile> outfile
4.char分为:char(具体表现为后面两种之一,取决于编译器)、signed char、unsigned char
5.赋值给 无符号类型 ,超过范围即为值对范围求模的余数;赋值给 有符号类型 ,超过范围未定义(undefined)
6.初始化与赋值是不同的概念,初始化的含义是创建变量的时候赋予一个初始值,赋值则把当前值擦除,用新值替代
7.定义于 任何函数体之外 的变量被初始化为0,建议初始化内置类型变量,防止未初始化造成的错误
8.extern double pi = 3.1415926为定义,而非声明,任何在函数体 内部试图初始化extern关键字的变量 ,将引发错误
9.用户自定义标示符不能采用双下划线或下划线加大写字母; 函数体外部 不能下划线开头
2.3复合类型(引用,指针等)
引用为对象起了另一名字,定义引用时,会跟初始值 绑定(bind)在一起,因此无法另引用指向另一个引用,所以引用必须初始化。引用即别名,非对象。
除2种情况,引用类型需与绑定对象严格匹配
指针指向的对象类型必须与赋值类型相同
void *指针,可以存放任意对象地址,但没法访问内存中的对象,因为不知道其类型
阅读一条比较复杂的指针或引用,可以从右到左阅读该变量的定义 (很有帮助的一条tip)
2.4const限定符
const的变量不是一个常量表达式,可以在声明,和定义都添加extern关键字,extern const int buffer = func() ---定义 ; extern const int buffer---声明;
const引用可以绑定到一个非常量对象上
const int * r3 = &i; int * const r4 = &i; r3 = &j; r4 = &j;这段表明了const int * 与 int * const 的区别,一个是表明指针指向变量的之不可变,一个表明,int类型指针里的内容(地址)不可变,也即只能指向同一个地址
底层const不能忽略,顶层const不受影响,赋值的时候
个人感悟:无论是const int * p = &i,const int &q = i,其实都只是对改指针或引用的声明,表明不能通过修改 *p的值,或q的值来达到修改i的值,i的值能否被修改取决于i属于什么类型,如果为非常量值,则它可以被其他的变量修改。
constexpr类型定义,通过一个常量表达式,或constexpr函数(容易在编译期间得出结果)
2.5处理类型
typedef char * pstring
const pstring cstr = 0 与const char * cstr=0,完全不一样,因为pstring已经成为了一种类型,参考const int a,表明此指针是不可变的
auto类型:需要初始化,赋值的时候类型会自动忽略顶层const(跟一般状况一样 )
decltype类型指示符,返回操作数数据类型
解引用,原来得到的是引用!!!所以,int * p = &i , decltype(*p)得到的类型类型其实为int &
解引用操作符是:*。对于其定义书上并没有给出明确的定义,不过其意思是对其得到操作数(必须为指针类型)所指变量的引用。如有如下代码:
int ival;
int *ip=&ival;
int &iref=*ip;//*ip就是ival的引用。
其等价于:
int &iref=ival;
使用decltype时,如果变了带有括号,则代表返回对其引用的类型,例如decltype( ( i ) ),返回的是int &类型,定义对象的时候必须初始化
int *p1 = nullptr; 等价于int *p2 = 0 ; 等价于int *p3 = NULL; (难道0地址即表示空指针。。。)
0 0
- 第一、二章
- 第一、二章
- 第一、二章
- 第一~二章笔记
- 第一~二章作业
- PMP 第一、二章
- 第一二章问答题
- 第一 二章习题
- 【软件工程】第一、二章总结
- 第一二章预备知识
- c#第一,二章总结
- 第一、二、三章笔记
- 第一、二章课后习题
- 第一二章课后习题
- 第一二章课后习题
- (第一、二章)基础知识+CPU工作原理
- c++ 学习笔记_第一二章
- Unix & Linux 大学教程第一、二章
- 安卓保存图片到SD卡,使用byte流
- 1、欢迎使用Swift来编写iOS项目
- 中文标点符号unicode码
- bzoj 1087 题解
- guava-IO使用
- 第一、二章
- 可执行文件的装载与执行
- 网页开发的6种在线调试环境
- 转载大神IOS开发系列【8】--UITableView全面解析
- mongodb学习1-安装、部署、shell
- Disruptor Ring Buffer as a Blocking Queue
- Ubuntu下软件无法下载或更新以及SDK无法更新的情况解决
- hoj1017 Joseph's problem II
- The file cannot be validated as there was a connection problem. struts-config.xml