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


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

相关推荐
senijusene1 小时前
IMX6ULL 平台 I2C 总线:从硬件原理到裸机驱动
c语言·arm开发·驱动开发
kelleyv1 小时前
C语言过时了?C3和Zig谁能拯救它
c语言·zig·c3·系统级开发·语言革新
沉鱼.441 小时前
第十三届题目
c语言·c++·算法
算法鑫探4 小时前
10个数下标排序:最大值、最小值与平均值(下)
c语言·数据结构·算法·排序算法·新人首发
少司府4 小时前
C++基础入门:类和对象(中)
c语言·开发语言·c++·类和对象·运算符重载·默认成员函数
爱编码的小八嘎5 小时前
C语言完美演绎7-5
c语言
REDcker5 小时前
OpenSSL:C 语言 TLS 客户端完整示例
c语言·网络·数据库
quintin-lee8 小时前
Postgres 内核:从入门到“入土” (三) —— Page 结构:数据是如何在磁盘上“躺平”的
c语言·数据库·postgresql·数据库架构
深邃-8 小时前
【C语言】-数据在内存中的存储(1)
c语言·开发语言·数据结构·c++·算法
♛识尔如昼♛9 小时前
C 基础(5) - 运算符、表达式和语句
c语言