C语言/C++指针知识点总结详解

1、什么是指针

如果把某一块已经开辟的内存空间比作房间,那么指针就是一把钥匙。房间有大有小,而钥匙就那么大,所以指针所占用的字节为4字节。这把钥匙可以根据你的设定来让它开哪个房间,但是,最多只能开一个房间。

2、指针定义和赋值

1、定义
我们平常见到的定义指针有两种写法:int *pint* p,其实这两种写法效果是一样的,但是为了避免混淆,建议采用第一种int *p,因为如果你同时定义了一个指针变量和一个普通变量,如:int* p,a;你可能以为定义了两个指针p和a,所以采用第一种能避免混淆。
2、赋值
赋值方式有两种
定义时赋初值:int a; int *p=&a
先定义,后赋初值:int a; int *p; p=&a
注意:哪怕你知道变量a的地址是1100,你也不能将1100直接赋给p,一定要用取地址的方式。
3、数组首地址赋给指针
我们都知道,数组名就是数组的首地址,所以将指针指向数组时直接把数组名赋给指针变量即可:int a[10]; int *p; p=a;

3、引用指针变量

&作为取地址符,*是取值符,如果指针指向的是单个变量,直接用 *将p指向地址的值取出即可:cout<<*p<<endl;
如果指针指向的是一个数组,那么 *p 取得是第一个值,因为前面说过将数组首地址是赋给p的,但如果要表示a[1],a[2],可以用 *(p+1), *(p+2)来表示,p++代表的是将指针的指向移动一个位置, 不是移动一个字节,移动的字节数取决于指针指向的类型,如果指针指向的是int类型的数组,那么每次p++就移动4个字节,如果指向char类型的数组,每次p++就移动1个字节。
也可以直接用cout<<p[1]<<p[2]<<endl;来直接引用数组元素,因为数组名相当于指针,所以指向数组名的指针可以当做数组名来使用

4、指针作函数参数

一般调用函数传参都是值传递,如果函数参数时指针的话,那么调用函数时就得将相应地

  • 10
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值