指针运算

本文通过一个C语言示例程序详细解释了指针与数组的关系,包括如何使用指针遍历数组、指针算术运算及指针与数组名的区别。通过具体的代码示例,演示了指针操作的基本用法,如指针的自增行为和通过指针修改数组元素值的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdlib.h>
#include<stdio.h>

//若有p=a(p指向数组a),则:
//p++(或p+=1),表示p指向下一元素
//(*p)++表示p所指向的元素值加1,而非指针值加1

void main()
{
	int num[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
	for (int i = 0; i < 10; i++)
	{
		printf("%x,%d\n", &num[i], num[i]);
	}

	int *p = num;
	//printf("%x\n", p);
	//printf("%x\n", p++);
	//printf("%x\n", p);

	//同样的优先级,计算方向为从右向左,*(p++)仍然是后自增
	//*p++与*(p++)等价,有同样的优先级,结合方向为自右向左
	//*(p++)与*(++p),前者是先取*p的值,然后p值加1(先根据地址取值,然后地址加1(指向下一个元素)),相当于a[i++];后者是先使p加1,再取*p,相当于a[++i]
	printf("%d\n", *p++);
	p = num;
	printf("%d\n", *(p++));

	//(*p)++;			//根据地址取出变量的值自增
	//printf("%d\n", (*p)++);
	//printf("%d\n", ++(*p));
	//printf("%d,%p\n", num[0], num);

	system("pause");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值