《C++ Primer》 第04章 [ 数组和指针 ]
第04章:数组和指针
第二节:指针的引入
@ 学习摘录041:
——指针的概念很简单,指针用于指向对象。
@ 学习摘录042:
如果必须分开定义指针和其所指针的对象,则将指针初始化为0,因为编译器可检测出0值的指针,程序可判断该指针并未指向一个对象。
摘录有想042:
——我想这也就是说,定义指针最好有初始化,避免不必要的错误。
@ 学习摘录043:
——NULL 在 <cstdlib> 头文件中定义!
@ 学习摘录044:
——C++提供了一个特殊的指针类型void*,它可以保存”任何”类型对象的地址。
——void*主要用于以下三种操作:
——1. 与另一个指针进行比较
——2. 向函数传递void*指针或从函数返回void*指针
——3. 给另一个void*指针赋值
double obj = 3.14;
double *pd = &obj;
// ok, void * can hold the address value of any data pointer type
void * pv = & obj; // obj can be an object of anytype
pv = pd; // pd can be a pointer to any type
@ 学习摘录045:指针与引用的区别
——指针与引用的相同点:都可间接访问另一个值
——第一区别:引用总指向某个对象,定义引用时设有初始化是错误的。
@ 学习摘录046:
——C++允许计算数组或对象的超出未端的地址,但不允许对此进行解引用操作(*解引用操作),不合法!
第三节:C风格字符串
@ 学习摘录047:C风格字符串与C++的标准库类型string的比较
——以下程序反映了使用C风格字符串与C++的标准库类型string的不同之处,使用string类型的版本更短、更容易理解,而且出错的可能性更小。
第四节:多维数组
@ 学习摘录048:
—— C++中没有多维数组,通常所指的多维数组的数组;
@ 学习摘录049:
——ptrdiff_t:在cstddef头文件中定义的与机器相关的有符号整型,该类型具有足够大小存储两个指针的差值,这两个指针指向同一个可能的最大数组。
——size_t:在cstddef头文件中定义的与机器相关的无符号整型,它具有足够大小存储一个可能的最大数组。
第二节:指针的引入
@ 学习摘录041:
——指针的概念很简单,指针用于指向对象。
@ 学习摘录042:
如果必须分开定义指针和其所指针的对象,则将指针初始化为0,因为编译器可检测出0值的指针,程序可判断该指针并未指向一个对象。
摘录有想042:
——我想这也就是说,定义指针最好有初始化,避免不必要的错误。
@ 学习摘录043:
——NULL 在 <cstdlib> 头文件中定义!
@ 学习摘录044:
——C++提供了一个特殊的指针类型void*,它可以保存”任何”类型对象的地址。
——void*主要用于以下三种操作:
——1. 与另一个指针进行比较
——2. 向函数传递void*指针或从函数返回void*指针
——3. 给另一个void*指针赋值
double obj = 3.14;
double *pd = &obj;
// ok, void * can hold the address value of any data pointer type
void * pv = & obj; // obj can be an object of anytype
pv = pd; // pd can be a pointer to any type
@ 学习摘录045:指针与引用的区别
——指针与引用的相同点:都可间接访问另一个值
——第一区别:引用总指向某个对象,定义引用时设有初始化是错误的。
@ 学习摘录046:
——C++允许计算数组或对象的超出未端的地址,但不允许对此进行解引用操作(*解引用操作),不合法!
第三节:C风格字符串
@ 学习摘录047:C风格字符串与C++的标准库类型string的比较
——以下程序反映了使用C风格字符串与C++的标准库类型string的不同之处,使用string类型的版本更短、更容易理解,而且出错的可能性更小。
第四节:多维数组
@ 学习摘录048:
—— C++中没有多维数组,通常所指的多维数组的数组;
@ 学习摘录049:
——ptrdiff_t:在cstddef头文件中定义的与机器相关的有符号整型,该类型具有足够大小存储两个指针的差值,这两个指针指向同一个可能的最大数组。
——size_t:在cstddef头文件中定义的与机器相关的无符号整型,它具有足够大小存储一个可能的最大数组。