指针运算,二级指针,指针数组的学习,适合初学者

本文详细介绍了C语言中的指针运算,包括指针加减整数、指针之间的关系运算,以及二级指针的概念。通过实例解析了指针数组的使用,并探讨了指针作为数组名时的特殊性质。文章适合C语言初学者阅读。
摘要由CSDN通过智能技术生成

指针运算

  • 指针±整数
  • 指针-指针
  • 指针的关系运算

1.1指针±整数

首先,我们来聊聊指针加整数,来看看这个代码, 我将会详细分析。

#include <stdio.h>

#define N_VALUES 5

int main()
{
	float values[N_VALUES];
	float* vp;
	for (vp = &values[0]; vp < &values[N_VALUES];)
	{
		*vp++ = 0;
	}

	return 0;
}

因为把N_VALUES定义为5,所以在float类型中,设置了一个values数组里面有五个元素。接下来看for循环,指vp指向了values的首元素地址,然后设置了一个范围就是指针vp小于取地址的第六个元素,为什么是六这是因为数组下标都是由零开始,012345,这几个数字刚好六个,在代码块中我们再解引用vp然后后置加加,接下来来画图解决问题。
在这里插入图片描述

接下来看看指针-整数的例子

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };
	int* p = &arr[9];
	printf("%p ", p);
	printf("%p ", p - 1);

	return 0;
}

打印结果是:

看这张图片可以知道,指针-1减去的是四个字节,在32位平台下,指针是四个字节,而在六十四位平台下则是八个字节
在这里插入图片描述
1.2 指针 - 指针
按照往常一样,来个代码例子看看:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值