关于指针

2021.5.27

1.函数改写通过指针变量访问整型变量

/*函数改写通过指针变量访问整型变量 
赵佳琪2020510754
2021.5.26*/
#include<stdio.h>
void exp(int a,int b);
int main()
{
	int a,b;
	a=100;
	b=10;
	exp(a,b);
	return 0;
}
void exp(int a,int b)
{
	int *p1=&a,*p2=&b;//指针p1指向变量a,指针p2指向变量b
	printf("%d,%d\n",a,b);
	printf("%d,%d\n",*p1,*p2); 	
} 

在这里插入图片描述

2.输入a和b并先大后小输出

/*输入a和b并先大后小输出
赵佳琪2020510754
2021.5.26*/
#include<stdio.h>
int main()
{
	int *p1,*p2,*p,a,b;
	printf("请输入两个整数:");
	scanf("%d,%d",&a,&b);
	p1=&a;
	p2=&b;
	if(a<b)
	{
		p1=&b;
		p2=&a;
	}
	printf("a=%d,b=%d\n",a,b);
	printf("max=%d,min=%d\n",*p1,*p2);
	return 0;
 }

在这里插入图片描述

3.函数处理,用指针类型数据作函数参数 对输入的两个整数按大小顺序输出

/*函数处理,用指针类型数据作函数参数 
对输入的两个整数按大小顺序输出 
赵佳琪2020510754
2021.5.26*/
#include<stdio.h>
void swap(int *p1,int *p2);
int main()
{
	int a,b;
	int *pointer_1,*pointer_2;
	printf("请输出a和b:");
	scanf("%d,%d",&a,&b);
	pointer_1=&a;//使pointer_1指向a 
	pointer_2=&b;
	if(a<b)
	   swap(pointer_1,pointer_2);
	printf("max=%d,min=%d\n",a,b);
	return 0;
 } 
 void swap(int *p1,int *p2)
 {
 	int temp;
 	temp=*p1;
 	*p1=*p2;
 	*p2=temp;
 }

在这里插入图片描述

4.函数实现按从大到小顺序对三个数排序

/*函数实现按从大到小顺序对三个数排序
赵佳琪2020510754
2021.5.26*/
#include<stdio.h>
void exchange(int *q1,int *q2,int *q3);
int main()
{
	int a,b,c,*p1,*p2,*p3;
	printf("请输出三个整数:");
	scanf("%d,%d,%d",&a,&b,&c);
	p1=&a;
	p2=&b;
	p3=&c;
	exchange(p1,p2,p3);
	printf("顺序是:%d,%d,%d\n",a,b,c);
	return 0;
}
void swap(int *pt1,int *pt2);
void exchange(int *q1,int *q2,int *q3)
 {
 	if(*q1<*q2)
 	  swap(q1,q2);
 	if(*q1<*q3)
 	  swap(q1,q3);
 	if(*q2<*q3)
 	  swap(q2,q3);
 }
void swap(int *pt1,int *pt2)
{
	int temp;
	temp=*pt1;
	*pt1=*pt2;
	*pt2=temp;
}

在这里插入图片描述
在这里插入图片描述

5.下标法输出一个整型数组中的全部元素

/*下标法输出一个整型数组中的全部元素
赵佳琪2020510754
2021.5.26*/
#include<stdio.h>
int main()
{
	int a[10];
	int i;
	printf("请输出十个整型数据:"); 
	for(i=0;i<10;i++)
	   scanf("%d",&a[i]);
	for(i=0;i<10;i++)
	   printf("%d",a[i]);
	printf("%\n");
	return 0;
 } 

在这里插入图片描述

6.用指针变量指向数组元素 输出一个整型数组中的全部元素

/*用指针变量指向数组元素 
输出一个整型数组中的全部元素 
赵佳琪2020510754
2021.5.26*/
#include<stdio.h>
int main()
{
	int a[10];
	int *p,i;
	printf("请输出十个整型数据:");
	for(i=0;i<10;i++)
	  scanf("%d",&a[i]);
	for(p=a;p<(a+10);p++)
	  printf("%d",*p);
	printf("\n");
	return 0; 
 } 

在这里插入图片描述

7.将数组中n个元素按相反顺序存放

/*将数组中n个元素按相反顺序存放
形参用数组名 
赵佳琪2020510754
2021.5.26*/
#include<stdio.h>
void inv(int x[],int n);
int main()
{
	int i,a[10]={3,7,9,11,0,6,7,5,4,2};
	printf("原始数组为:\n");
	for(i=0;i<10;i++)
	  printf("%d",a[i]);
	printf("\n");
	inv(a,10);
	printf("相反顺序的数组为:\n");
	for(i=0;i<10;i++)
	  printf("%d",a[i]);
	printf("\n");
	return 0;
}
void inv(int x[],int n)
 {
 	int temp,i,j,m=(n-1)/2;
 	for(i=0;i<=m;i++)
 	{
 		j=n-1-i;
 		temp=x[i];
 		x[i]=x[j];
 		x[j]=temp;
	 }
	 return;
 }

在这里插入图片描述

8.将数组中n个元素按相反顺序存放 形参用指针变量名

/*将数组中n个元素按相反顺序存放
形参用指针变量名 
赵佳琪2020510754
2021.5.26*/
#include<stdio.h>
void inv(int *x,int n);
int main()
{
	int i,a[10]={3,7,9,11,0,6,7,5,4,2};
	printf("原始数组为:\n");
	for(i=0;i<10;i++)
	  printf("%d",a[i]);
	printf("\n");
	inv(a,10);
	printf("相反顺序的数组为:\n");
	for(i=0;i<10;i++)
	  printf("%d",a[i]);
	printf("\n");
	return 0;
}
void inv(int *x,int n)
 {
 	int *p,temp,*i,*j,m=(n-1)/2;
 	p=x+m;
 	for(i=x,j=x+n-1;i<=p;i++,j--)
 	{
 		temp=*i;
 		*i=*j;
 		*j=temp;
	 }
	 return;
 }

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值