指针变量使用规则实例

#include<stdio.h>
//指针变量使用规则
int main(int argc,char*argv[])
{
	int a[10] = {1,2,3,4,5,6,7,8,9,10};
	int *p = a;//int *p=&a[0]两者等价
	int i = 0;
	while (i<sizeof(a)/sizeof(a[0]))
	{
		printf("p[%d]=%d,&p[i]=0x%p",i,p[i],i,&p[i]);//使用指针下标进行表示
		++i;
	}
	printf("******************");
	while (i<sizeof(a) / sizeof(a[0]))
	{
		printf("p[%d]=%d,&p[i]=0x%p", i, *(p+i), i, p+i);//使用指针*进行表示 *(p+i)等价与p[i] p+i等价于&p[i]
		++i;
	}
	printf("******************");
	while (p-a<sizeof(a) / sizeof(a[0]))//指针偏移法,两个指针相减
	{
		printf("a[%d]=%d,p=0x%p", p-a, *p,p++);
		++i;
	}

	while (*p)
	{
		printf("a[%d]=%d,p=0x%p", p - a, *p, p);
		++i;
	}
	printf("******************");
	do
	{
		printf("a[%d]=%d,p=0x%p", p - a, *p, p);
	} while (*p++);
	return 0;
}

2.指针变量做形式参数时候,经常用于改变主调函数实际参数(使用*或者下标来操作实参)

#include<stdio.h>
void Swap(int a, int b)//该函数并不能将两个整数进行交换,未改变了实惨
{
	int t = a;
	a = b;
	b = t;
}

void Swap1(int *a, int *b) ///该函数并不能将两个整数进行交换,未改变了实惨
{
	int* t = a;
	a = b;
	b = t;
}

void Swap1(int *a, int *b)//该函数并将两个整数进行了交换,改变了实惨
{
{
	int t = *a;
	*a = *b;
	*b = t;
}

void Swap2(int &a, int &b)
{
	int t = a;
	a = b;
	b = t;
}

int main()
{
	int i = 10, j = 20;
	Swap(i,j);
	printf("i=%d,j=%d\n", i, j);
	Swap1(&i,&j);
	printf("i=%d,j=%d\n",i,j);
	Swap2(i, j);
	printf("i=%d,j=%d\n", i, j);
	return 0;
}

3.查找字符串

#include<stdio.h>
void Reverse(char str[])
{
	char*p = str;
	while (*p)
		++p;
	while (--p > str)
	{
		char t = *p;
			*p = *str;
			*str = t;
		++str;
	}
	
}

int StringFind(char *str, char a)//查找字符串
{
	int i = 0;
	while (*str)
	{
		if (*str == a)
			return i;
		++i;
		++str;
	}
	printf("总共有%d个选中的字符%c",i,a);
	return -1;
}



int main()
{
	char s[20];
	scanf_s("%s",&s,sizeof(s));
	puts(s);
	Reverse(s);
	puts(s);
	StringFind(s,' ');
	
	return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值