指针

一。首先对指针的第一印象就是他指向的是一个地址,如下面所示:

int a = 3;

int *p = &a; 

这样表示的话,p就是表示a这个变量所在的地址,也就是换了一个名称来表明这个地址,其实意义不大

指针的真正的用武之地是在于,在运行阶段分配未命名的内存以存储值,这种情况下,就只能通过指针来访问内存,在c语言中,库函数malloc()来分配内存,在c++ 仍可以使用该方法,但是更好的方法是使用new运算符来分配内存。

eg.    int *p = new int;

new是在程序运行的时候才给他分配内存,但是给谁分配的内存,就是说指针p指向的是谁的内存,这里并没名称,这是给他new int 即new了一个int的内存,我们就说p指向的是一个数据对象,这个数据对象比变量更加的通用,他指的是为数据线分配的内存块

但是只要是new出来的内存,就需要程序员手动的释放内存,即deleate p

二。同样的创建数组也有两个方法,一个就是声明来创建数组,即程序在编译的时候为他分配内存,称为静态联编

eg     int a[10];

另一种方法是使用new来创建数组 ,在运行的时候才给他分配内存

eg.  int *p = new int[size]. 这个size可以是常量10,也可使是变量,由用户在运行的时候给他

删除内存的话就是使用delete [] p

 

三。指针和数组

指针可以指向的是数组的第一个元素的位置,数组的名称其实也是其第一个元素的位置,他们的区别是指针可以使用算术符,即p = p+1,指向下一个元素的地址,但是数组名是不可以的,数组名只是一个常量,不能+1

 

三。在函数中,直接使用指针来传递变量的地址,可以节约时间和内存,但是似乎有些麻烦,引用!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值