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


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

相关推荐
noipp1 小时前
推荐题目:洛谷 P3726 [AHOI2017/HNOI2017] 抛硬币
c语言·数据结构·c++·算法·编程·洛谷·luogu
c238561 小时前
C/C++每日一练14
c语言·c++·算法
apocelipes2 小时前
Linux NTSYNC 简明教程
c语言·并发·linux编程
caishenzhibiao2 小时前
缠论画线主图 同花顺期货通指标
java·c语言·c#
库玛西2 小时前
快速幂算法全景总结图:从“愚公移山”到“细胞分裂”
c语言·c++·笔记·算法
bnmoel3 小时前
数据结构深度剖析二叉树・下篇:链式结构的实现 ,遍历方法全解析
c语言·数据结构·算法·二叉树·
ACP广源盛139246256733 小时前
GSV6155@ACP# Type-C 视频信号转换芯片:技术架构、工程痛点适配与落地场景分析
大数据·c语言·开发语言·人工智能·分布式·嵌入式硬件·架构
光子物联单片机3 小时前
STM32传感器模块编程实践(二十一)DIY语音控制小车套件模型
c语言·stm32·单片机·嵌入式硬件·mcu
Darkwanderor4 小时前
使用管道实现进程间通信 (IPC, Inter-Process Communitation)
linux·c语言·c++
冻柠檬飞冰走茶4 小时前
PTA基础编程题目集 7-37 整数分解为若干项之和(C语言实现)
c语言·开发语言·数据结构·算法