【C++ Primer】数组和指针
来源:互联网 发布:java抽象 编辑:程序博客网 时间:2024/05/18 04:00
四、数组和指针
1. 数组
数组的长度是固定的
在数组维数必须是大于等于1的常量表达式,只能包括整型字面值常量、枚举常量、用常量表达式初始化的整型const对象。
初始化:同内置变量,函数外初始化为0,函数内无初始化。
字符数组:
char ca[] = "c++"; 最后会自动添加'\0',维数为4;
const char ca[3]= "c++"是错误的
数组下标的正确类型是size_t。
2. 指针
避免使用未初始化的指针
将指针初始化为0表明指针不指向任何对象,只能初始化为常量的0或const的变量0,等效于初始化为NULL
void* 指针可以保存任何类型对象的地址。
两个指针的减法操作得到的结果类型是ptrdiff_t,与size_t相似,但是是signed类型
指针和下标:
int ia[] = {1, 2, 3};
int *pb = &ia[2];
int k = pb[-2] //合法,结果是ia的第一个数
从右向左读,* 读作指向
指向const对象的指针:const double * cptr; 不必初始化,因为cptr不为常量,也可指向非常量
cost指针: int *const cur = 0; 因为其本身是一个常量,所以必须在定义时初始化
指向const对象的const指针: const int *const cur = 0;
指针和typedef:
typedef string * pstring;
string * const cstr = NULL;
const pstring cstr = NULL;
pstring const cstr = NULL;三者是一个意思,cstr是一个const指针
3. C风格字符串
以空字符null结束的字符数组
c风格字符串标准库函数: strlen,strcmp,strcat,strcpy,使用这些必须确定字符串以'\0'结尾,否则最后的结果是未知的。
从string转成char*: const char *str = str2.c_str(); // pay attention to the 'const'
4. 动态数组
使用new、delete来进行动态数组的申请,如果数组元素具有类类型,则使用该类的默认构造函数初始化,如果是内置类型,则不进行初始化:可以使用()进行初始化为0
int *pia = new int[10] // not initial
int *pia = new int[10]() // initial
5. 多维数组
int ia[3][4]; // not initial
int (*ip)[4] = ia; // ip 是一个指向四个整数数组的指针 int *ip[4] 表示一个指向整数的指针数组;
ip = &ia[2]; // ia[2] is an array of 4 ints
typedef简化多维数组的指针:
typedef int int_array[4]; int_array *ip = ia;
- C++Primer 数组和指针
- 《C++Primer》 第四章 数组和指针
- 指针和数组(c++primer)
- 《C++primer》读书笔记---数组和指针
- c++Primer,四,数组和指针
- C++primer(六) 数组和指针
- C++Primer--数组、指针
- 第二遍C++primer->数组指针和指针数组
- C++primer 4.4 数组指针和指针数组(转)
- 【C Primer Plus】第十章 数组和指针(一)
- 【C Primer Plus】第十章 数组和指针(二)
- 《C++primer》标准库类型 数组和指针
- 【C++Primer学习笔记】第4章 数组和指针
- 《C Primer Plus 5th》读书笔记-----指针和多维数组
- C++Primer笔记(包含string、vector和数组指针)
- C++Primer笔记 第四章 数组和指针
- c++primer学习笔记3 - 数组和指针
- C++Primer (第四版) 第四章 数组和指针
- 哈哈 拿到了 欧拉函数线性模版
- 个人理解广度优先搜索
- CODE 125: Longest Palindromic Substring
- iPad 投影,录像利器 itools
- 双缓冲(Double Buffer)原理和使用
- 【C++ Primer】数组和指针
- Android上初识openGL ES
- 【live555】windows下的编译
- BeginPaint和GetDC有什么区别?(转)
- 【C++ Primer】表达式
- 【C++ Primer】语句
- 利用SD卡烧写uboot.bin到nand中
- 单片机学习经验总结
- 快速排序--c++实现