C 指针的算术运算

148 阅读1分钟

使用指针代替数组,因为变量指针可以递增,而数组不能递增,数组可以看成一个指针常量

递增一个指针

#include <stdio.h>

const int MAX = 3;
int main()
{
	int var[] = { 10, 100, 200 };
	int i, *ptr;

	ptr = var;
	for (i = 0; i < MAX; i++)
	{
		printf("储存地址:var[%d] = %p\n", i, ptr);
		printf("储存值:var[%d] = %d\n", i, *ptr);
		ptr++;
		
	}
	system("pause");
	return 0;
	
}

image.png

递减一个指针

#include <stdio.h>

const int MAX = 3;
int main()
{
	int var[] = { 10, 100, 200 };
	int i, *ptr;

	ptr = &var[MAX-1];
	for (i = MAX; i >0; i--)
	{
		printf("储存地址:var[%d] = %p\n", i-1, ptr);
		printf("储存值:var[%d] = %d\n", i-1, *ptr);
		ptr--;
		
	}
	system("pause");
	return 0;
	
}

image.png

指针的比较

#include <stdio.h>

const int MAX = 3;
int main()
{
	int var[] = { 10, 100, 200 };
	int i, *ptr;

	ptr = var;
	i = 0;
	while (ptr <=&var[MAX -1])
	{
		printf("储存地址:var[%d] = %p\n", i, ptr);
		printf("储存值:var[%d] = %d\n", i, *ptr);
		ptr++;
		i++;
		
	}
	system("pause");
	return 0;
	
}

image.png