c语言--指针运算

目录

一、指针±整数

用数组举例:

因为数组在内存中是连续存放的,只要知道第⼀个元素的地址,顺藤摸瓜就能找到后面的所有元素。

代码:

c 复制代码
#include<stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int* p = &arr[0];
	int sz = sizeof(arr) / sizeof(arr[0]);
	for (int i = 0; i < sz; i++)
	{
		printf("%d ", *(p + i));//指针+整数
	}
	return 0;
}

运行结果:

分析:

二、指针-指针

指针-指针得到的是两个指针之间的绝对值等于元素个数

2.1条件

指针减指针的计算前提条件一定是:两个指针指向了同一块空间。

2.2两个指针指向同一块空间代码

c 复制代码
#include<stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
		printf("%d ", &arr[9]-&arr[0]);//指向同一块空间
	return 0;
}

2.2.1运行结果

2.3两个指针指向不同块空间代码

c 复制代码
#include<stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int cha[10] = { 1,2,3,4,5,6,7,8,9,10 };
		printf("%d ", &arr[9]-&cha[0]);
	return 0;
}

2.3.1运行结果

2.4总结

在使用指针-指针的时候要注意在同一块空间。

三、指针的关系运算

指针和指针比较大小

3.1代码

c 复制代码
#include<stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	int* p = arr;//&arr[0]---->>数组名等于起始地址的大小
	while (p < arr + sz)
	{
		printf("%d ", *p);
		p++;
	}
	return 0;
}

3.1.1运行结果

3.1.2分析


欧耶!!!!我学会啦!!!!

相关推荐
嵌入式研究僧21 分钟前
【嵌入式项目分享】ESP32红外热成像仪
c语言·stm32·嵌入式硬件
点亮一颗LED(从入门到放弃)23 分钟前
C语言学习笔记(1)——输入输出,数据类型
c语言·笔记·学习
Zsy_05100328 分钟前
【数据结构】二叉树介绍及C语言代码实现
c语言·数据结构·算法
脏脏a2 小时前
【初阶数据结构】栈与队列:定义、核心操作与代码解析
c语言·开发语言
C语言不精2 小时前
一种在 ESP32-S3 上取巧的清晰度检测方案
c语言·stm32·嵌入式硬件·学习
Bigan(安)2 小时前
【奶茶Beta专项】【LVGL9.4源码分析】03-显示框架-图层管理
linux·c语言·mcu·arm·unix
云雾J视界2 小时前
51单片机信号处理实战:C语言A/D与D/A转换应用,从传感器采集到PWM控制全解析
c语言·51单片机·信号处理·pwm·模拟信号·数字信号·a/d
WongKyunban2 小时前
使用Valgrind检测内存问题(C语言)
c语言·开发语言
代码游侠2 小时前
数据结构——线性表
linux·c语言·数据结构·学习·算法
橘子编程2 小时前
仓颉语言:华为新一代编程利器
java·c语言·开发语言·数据库·python·青少年编程