(笔记)C++ Primer/第四章 数组和指针

指针

void*指针

void*指针可以保存任何类型的对象地址,不过void*指针不能修改指向对象的值.

 

创建动态数组

c++语言中,可以使用new和delete实现动态内存的创建和销毁

动态数组的定义

例:int* pia=new int[10];//分配了一个10个int型元素数组,并返回该数组元素的第一个指针.用于初始化pia指针

初始化动态分配数组

int* pia=new int[10]();//10个元素初始化为0

int* pia=new int[10](5);//10个元素初始化为5

const对象的动态数组

const int* pci_bad=new const int[100];//错,没有初始化值

cosnt int* pci_ok=new const int[100]();//对,初始化了.没有动态分配的初始化时,此类型必须提供默认构造函数

动态空间释放

delete [] pia;//不能少了方括号

 

新旧代码兼容

混合使用string和c风格字符串

string st("abc");

const char* str=st.c_str()//返回第一个元素的const char*指针并以结束符null结束.

 

使用数组初始化vector对象

int array[6]={1,2,3,4,5,6};

vector<int> vc(array,array+6);

 

指针和多维数组

int ia[3][4];

int (*ip)[4]=&ia[2];//圆括号不能少,指向第2列4个元素的数组 从内往外阅读*ip是一个int [4]类型-ip是一个指向4个元素数组的指针.

 

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

typedef int int_array[4];

int_array *ip=ia;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值