C++一级和多级指针的使用

2016-09-24  本文已影响0人  卢长胜sky

C++中的指针是非常好用的,但由于各种指针类型的繁多,很容易遗忘。

1)一级指针

例如

char str[10];

char str[10] = {0};//初始化

此时str为一指向10个char类型数据的内存的首地址;

有时需要动态分配内存,则可以按照如下进行操作

char *str;//此时str为一个字符指针变量,但未指向任何地址,浮空

int N = 10;

str = new char [10];

运用new关键字,便可以动态申请了。

2)二级指针

例如

char image[100][100];

char image[100][100] = {{0}};

此时image为指向100*100的二维char型数组

但如果需要动态分配内存空间呢?此时,则可以

char **image;

image = new char *[100];//image指向一个一维指针数组的首地址

for(int i = 0; i<100; i++)

image[i] = new char [100];//为每一个一级指针image[i]分配长度为100的char型数组

当有一个维度确定数目时

char (*image)[100];//此时可以看成n*100的二维数组

image = new int [n][100];

3)内存的释放

若为指针指向一个变量,则需用delete

例如

int *p;

int N = 100;

p = &N;

delete p;

或者

int *p;

p = new int (100);//此时p指向初始值为100的整形变量

delete p;

若指针p指向一维或多位数组,则需用delete[] p;

驴儿先生笔记,不断更新中zzz...

上一篇下一篇

猜你喜欢

热点阅读