论指针

深入研究C/C++开始了,希望为以后打下坚实的基础.

指针是一种数据类型,它指向另外一个对象的地址,其内容就是一块地址,但是他本身也有地址,二者不同.

C++/C 程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以两者是等价的。数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。
指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。

1:指向指针的指针.

看看这个例子:

char ** p =NULL;

char * a = "hello";

以下代码有什么问题:

*p = a;

说明: 对于char **p = NULL; p确实被已经定义了,但是,被p指向的指针*p并没有被定义,所以*p需要被定义才可以使用.

char **p=NULL;
char *a = "hello";

p = new char*[1];//当然[]内可以填写任意大于0的整数.
*p=a;
cout<<*p<<endl;

delete []p; //modify 2005.06.02.侯说,只要是new的时候有 [],delete的时候也应该有[]
p = NULL;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值