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分析


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

相关推荐
m0_5474866641 分钟前
《数据结构 (C语言)》期末试卷及答案(10套)2026版
c语言·开发语言·数据结构
八月的雨季 最後的冰吻42 分钟前
FFmepg-- 42-ffplay.c 线程安全机制深度分析
c语言·安全·ffmpeg
逐光者9331 小时前
滤波器的 R 与 C 如何选择:从截止频率到工程实践
c语言·开发语言·r语言
水饺编程2 小时前
第2章:Linux 基础,whoami 命令
linux·c语言·汇编
Logic1013 小时前
C语言/数据结构动态规划题解:字符串变回文的最少操作次数——最长回文子序列(LPS)
c语言·数据结构·算法·动态规划·时间复杂度·回文串·最长回文子序列
wuminyu4 小时前
ZGC染色指针在虚拟线程stackChunkOop上的并发屏障全景分析
java·linux·c语言·jvm·c++
Logic1014 小时前
C语言/数据结构组合数学题解:数字好排列计数——质数倍数分类与阶乘取模
c语言·数据结构·算法·组合数学·时间复杂度·排列·取模运算
沫璃染墨5 小时前
《从零入门数据结构与算法(二):线性表详解——从顺序表原理到静态与动态实现》
c语言·数据结构·顺序表
wuyk5555 小时前
样章-第03讲-FreeRTOS在16KB-RAM上的裁剪与陷阱
c语言·开发语言·stm32·单片机·嵌入式硬件·物联网·系统架构
爱读书的小胖5 小时前
Codewars Sum of a Sequence Hard Core Version C 解题分析
c语言·数据结构·算法