猴博士指针学习

1. 指针变量与普通变量

指针=&变量
*指针=指针确定的变量的值
例题:输入两个整数,按照先大后小的顺序输出两个数,用指针编写程序
代码一:形参是数组名,实参也是数组名类型

// 编译环境DevC++ 
#include<stdio.h>
int main()
{
   
	int a,b;
	int *p,*q,*r;      //定义两个指针分别指向变量a和变量b 
	scanf("%d %d",&a,&b);
	p = &a,
	q = &b;
	if(a < b)
	{
   
		r = p;
		p = q;
		q = r;  
	}
	printf("较大的数是:%d 较小的数是%d\n",*p,*q);
	return 0;
}

代码二

// 编译环境DevC++ 
#include<stdio.h>
int main()
{
   
	int a,b;
	int *p,*q,t;      //定义两个指针分别指向变量a和变量b 
	scanf("%d %d",&a,&b);
	p = &a,
	q = &b;
	if(a < b)
	{
   
		t = *p;
		*p = *q;
		*q = t;  
	}
	printf("较大的数是:%d 较小的数是%d\n",a,b);
	return 0;
}

输入3,4后的结果:
在这里插入图片描述

2.指针变量与一维数组

用法:
指针=&数组名[某数]
*指针=指针确定的变量的值
指针+i=&数组名[某数+i]
&数组名[某数] 相当于 数组名+某数
数组名[某数] 相当于 *(数组名+某数)
例题:一个整型数组里的5个元素由键盘输入,将每个元素变为原来的2倍再依次输出

#include<stdio.h>
int main()
{
   
	int a[5];
	int i,*p;
	p = a;//等价于p = &a[0];
	for(i = 0;i < 5;i++)
	{
   
		scanf("%d",p+i);//等价于scanf("%d",a+i);
		*(p + i) = *(p + i)*2;
	}
	printf("加倍后的数组为:\n");
	for(i = 0;i < 5;i++)
	printf("%d ",*(p + i));//等价于printf("%d ",*(a + i));
	printf("\n");
	/*
	for(i = 0;i < 5;i++)
	printf("%d ",*(p + i));//等价于printf("%d ",*(a + i));
	printf("\n");
	
	等价于
	for(p = &a[0];p <= &a[4];p++) 
	printf("%d\t",*p);
	*/ 
	return 0; 
}

3.指针变量与一维数组相关函数

例题:
有两个小组,分别有5名学生和20名学生,编写程序输入学生的成绩,并调用一个aver函数求两个小组的平均分
代码一:

#include <stdio.h>
int main()
{
   
	float aver(float a[],int n);
	float zu1[5],zu2[10
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值