学习C++primer心得08.6.26

4.3.1 . 创建动态数组

int *pia = new int[10];

new 动态创建长度为 0 的数组时,new 返回有效的非零指针。该指针与 new 返回的其他指针不同,不能进行解引用操作,因为它毕竟没有指向任何元素。而允许的操作包括:比较运算,因此该指针能在循环中使用;在该指针上加(减)0;或者减去本身,得 0 值。

delete [] pia;

在关键字 delete 和指针之间的空方括号对是必不可少的:它告诉编译器该指针指向的是自由存储区中的数组,而并非单个对象。

与普通数组一样,使用多维数组名时,实际上将其自动转换为指向该数组第一个元素的指针。

在下面的声明中,圆括号是必不可少的:

int *ip[4]; // array of pointers to int

int (*ip)[4]; // pointer to an array of 4 ints

08.6.26

可以指向任何非 const 对象的指针类型。void* 指针只提供有限的几种操作:可用作函数形参类型或返回类型,也可与其他指针做比较操作,但是不能进行解引用操作。

如果两个操作数都是负数,除法操作的结果为正数(或零),而求模操作的结果则为负数(或零);

如果只有一个操作数为负数,这两种操作的结果取决于机器;求模结果的符号也取决于机器,而除法操作的值则是负数(或零):

expr && expr

expr || expr

逻辑与和逻辑或操作符总是先计算其左操作数,然后再计算其右操作数。只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解其右操作数。我们常常称这种求值策略为短路求值(short-circuit evaluation

位操作符操纵的整数的类型可以是有符号的也可以是无符号的。如果操作数为负数,则位操作符如何处理其操作数的符号位依赖于机器。于是它们的应用可能不同:在一个应用环境中实现的程序可能无法用于另一应用环境。

位与操作(&)需要两个整型操作数,在每个位的位置,如果两个操作数对应的位都为 1,则操作结果中该位为 1,否则为 0

&

bitwise AND(位与)

expr1 & expr2

^

bitwise XOR(位异或)

expr1 ^ expr2

|

bitwise OR(位或)

expr1 | expr2

由于后自增操作的优先级高于解引用操作,因此 *iter++ 等效于 *(iter++)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值