第4章 数组和指针

 

1:数组的维数必须用整型字面值常量

int n = 10;

int array[n];

这个定义是错误的,n必须位const类型才可以;


2:指针的初始化

int zero= 0;

int *i=zero;   //错误

int *i = &zero  //正确


const int zero =0;

int *i =zero  //正确


3:引用一经初始化,就始终指向同一个特定对象。定义引用时没有初始化是错误的。


4:关于typedef定义的指针的扩展

typedef string *pstring;

下面3条等价:

const pstring cstr1;

pstring const cstr2;

string* const cstr2;


5:strlen strcmp strcat strcpy strncat strncpy等操纵C风格字符串的标准库函数的使用,include <cstring>


6:C风格字符串结束符NULL


7:这种数组初始化的方法

int *pia2 = new int[10]();


8:string类型转换为C风格字符串

const char *p = string.c_str();


9:多位数组的组名自动转换为指向该数组第一个元素的指针

int ia[3][4];

int (*ip)[4] = ia;

ip = &ia[2];


注意区别:

int *ip[4];

int (*ip)[4];


10:用typedef简化指向多维数组的指针

typedef int int_array[4];

for (int_array *p = ia; p!=ia+3; ++p)

    for(int *q = *p; q!=*p+4;++q)

cout << *q << endl;

阅读更多
个人分类: C++Primer
上一篇第3章 标准库类型
下一篇第8章 标准io库
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭