指针的初识

 一,指针认识

指针是c语言中最常用的知识,指针是指向地址的的一个标志。

1,地址

在写代码时,设置某个变量时,系统会为其分配一个“房间”,就是地址,如图,一个一个连一起是不同对象的地址。地址在内存中连续存放。

2,指针用法,指针对象一般用基本类型家*号类型

假若

int *p = a;

这里的a就是int类型的,由于指针指向的是地址,所以a要用表示地址的量,比如数组名,数组名就是数组首地址。

3多重指针,

这里的b类型是int*,c是int**类型,以此类推。

int **p = b;
int ***ps = c;

二,指针含义

像以上a对应的p是仅仅指向a的地址,更改a的数值不会影响p,更改p不会影响a的值,

b对应的p是指向b的地址,b是指向地址的指针,没错指针变量p有地址。

c同理。

三,用法

1,一般如图用就行,要求是等号右边不能是常量,常量无地址。

2,一般需要更改地址的时候,实参传只要一个*的一级指针,涉及修改地址的传用**二级指针。*指针变量是解引用,是获取指针指向变量的值

四,const修饰指针

const修饰的指针变量如果在*前,修饰指针指向的内容,相反则修饰指针变量。

五,指针的加减法

1,指针-+数字

由于地址在内存中连续存放,所以指针加减时会跳过同等数目的地址,一般用于用*(p+i)打印数组。

int arr【7】 = {1,2,3,4,5,6,7};
int *p = arr;
int sz = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i < 7; i++)
{
	printf("%d ", *(p + i));
}

2,指针减指针

一般结果为指针间的其他地址的总数量。

六,野指针

成因:指针未初始化,指针越界访问,指向空间被释放.所以使用指针前一定要初始化.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值