指针相减运算

#include <stdio.h>

int main () {
	int  a=10;
	int  *p=&a;
	int *pp=p+5;
	
	printf("%d",pp-p); //同类型指针相减 (pp-p)/sizeof(int) 如果类型不同无法做运算
	
	
	
	return 0;
}

编写程序用指针变量遍历一个数组。 相关知识 为了完成本关任务,你需要掌握: 1.指向数组元素的指针运算 2.如何遍历数组。 视频1 指针与一维数组 指向数组元素的指针运算 指针与整数的加减运算 有数组和指针变量的定义如下: int a[10],*p=a; 数组名代表数组的首地址,也就是数组元素a[0]的地址,现在指针变量p已指向数组中的第一个元素a[0],假设a[0]的地址为0x0022ff40,则p的值为0x0022ff40,则p+1的值为0x0022ff44,p+1指向同一数组中的下一个元素,而p-1的值为0x0022ff3c,p-1指向同一数组中的上一个元素,数组已经越界,系统不做数组越界检查。同理, p+i指向数组的第i个数组元素a[i]。指针与整数的加减运算结果是一个指针。 两个指针相减运算 有数组和指针变量的定义如下: int a[10],*p1=&a[3],*p2=&a[5]; 两个指针变量p1和p2可以进行相减运算,结果是一个整数,但是只有在p1和p2都指向同一数组中的元素时才有意义,现在p1指向a[3],p2指向a[5],那么p2-p1的值是整数 2,表示两个指针p1、p2之间数组元素的个数。 注意:指针变量不能做加法运算,如不能有p1+p2的运算。 两个指针的关系运算 有数组和指针变量的定义如下: int a[10],*p1=&a[3],*p2=&a[5]; 两个指针变量p1和p2可以进行比较运算,若p1<p2为真,则表示p1指向的数组元素在前,p2指向的数组元素在后;若p1<p2为假,则相反;若p1==p2,则表示p1与p2指向同一元素。若p1与p2不指向同一数组,比较无意义。指针变量还可以与NULL比较,表示是否指向了一个变量,如p==NULL或p!=NULL。 编程要求 根据提示,在右侧编辑器 Begin-End 区间补充代码,输入并输出数组的值。 测试说明 平台会对你编写的代码进行测试: 测试输入:4 91 51 2 32 16 31 79 42 82 预期输出:4 91 51 2 32 16 31 79 42 82
最新发布
06-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值