指针操作数组和数组指针

指针遍历数组

同类型指针遍历同类型的数组

找出指定数字并返回他的地址

void main() {
	int arr[] = { 1,1,9,8,4,5,6,2,5,1 };

	int*p = arr;

	for (int i = 0; i < 10; i++) {
		if (*(p + i) == 1) {
			printf("%x\n", p + i);
		}
	}

}

在这里插入图片描述

不同类型之间的指针遍历数组

void main() {
	char arr[] = { 1,1,9,8,4,5,6,2,5,1 };

	short* p =(short*)arr;

	for (int i = 0; i < 10; i++) {
			printf("%x\n", *(p + i));
	}

}

在这里插入图片描述

指针数组

数组里存的是指针类型的元素
在这里插入图片描述

结构体指针

把结构体当做数据类型,则对于结构体指针的操作与其他数据类型相同。
在这里插入图片描述

多级指针

p1+2 就是p1指针移动2*char(1字节)个长度
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

指针数组

本质是个指针

宽度

在这里插入图片描述
在这里插入图片描述

赋值和++

px指向的是一个 数组 int[5], 每一次+1,移动20个字节在这里插入图片描述

例子

px和*px都表示数组的地址
px是社么类型?指向整个数组的指针
*px是什么?是数组名,相当于一个一级指针,是一个指向数组首地址的指针
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
指向数组首地址的指针和指针数组的区别就是做运算时,指针的跨度不一样
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值