初学者对于指针的一些用法

172 阅读2分钟

我在近期刚接触c中的指针发现了指针有好多的用法发现指针对于我们的帮助很大也可以做到之前不能做到的一些事情 在写C的代码中的时候我们经常遇到需要交换数字下面就给大家介绍几种交换两个数的方法。 第一种也是最简单的

int main()
{ int i=1,j=2,t`;`
t=i;
i=j;
j=t;
printf("%d,%d",i,j); 
	return 0;
}

先找一个变量t将i的值赋给t然后把j的值赋给i再将t中储存的i的值赋给j形成两个数的交换。 下面我们开使用第二种方法

void swap(int *pa,int *pb);
int main(void)
{ 	int a,b;
	printf("请输入两个交换的数:\n");
	scanf("%d,%d",&a,&b);
	swap(&a,&b);
	printf("%d,%d",a,b);
	return 0;
}
void swap(int *pa,int *pb){
int t;
t=*pa;	
*pa=*pb;
*pb=t;
}

这个指针的另一种写法(函数的两种用法)

void swap(int *pa,int *pb){
int t;
t=*pa;	
*pa=*pb;
*pb=t;
}
int main()
{ 	int a,b;
	printf("请输入两个交换的数:\n");
	scanf("%d,%d",&a,&b);
	swap(&a,&b);
	printf("%d,%d",a,b);
	return 0;
}

我们在函数中将两个值输入后有些时候只能出来一个值但在使用指针后就可以用指针来实现交换值的要求 还可以用指针去判断我们的程序是否出错

int f(int a,int b,int *r);  
int main()  
{  
 int a=5;  
 int b=0;  
 int c;  
 if(f(a,b,&c)){  
  printf("%d/%d=%d\n",a,b,c);  
 }else{  
  printf("错误");   
 }  
   
 return 0;  
}  
  
int f(int a,int b,int *r)  
{  
 int ret=1;  
 if(b==0) ret=0;  
 else *r=a/b;  
 return ret;  
}
void minmax(int a[],int len,int *min,int *max)
{
	int i;
	*min=*max=a[0];
	for(i=1;i<len;i++)
	{
		if(a[i]<*max)
		{
			*min=a[i];
		}
		if(a[i]>*min){
			*max=a[i];
		}
	}
}
int main()
{ 	int a[]={1,2,3,4,5,6,7,8,9,10};
	int min,max;
	minmax(a,sizeof(a)/sizeof(a[0]),&min,&max);
	printf("max=%d,min=%d\n",max,min); 
	return 0;
}

可以用指针来判断数组中最大值与最小值 以上就是我在我目前进度来看比较对我们有帮助的一些指针的用法 欢迎大家补充!