指针变量&普通变量
输入两个整数,用指针编程由大到小输出这两个数。
【keys1】
#include <stdio.h>
int main()
{
int a,b,*p,*q,*r;
printf("请输入两个整数\n");
scanf("%d,%d",&a,&b);
p=&a;
q=&b;
if(a<b)
{
r=p; //改变指针指向,但不改变a,b的值。即p永远指较大值,q永远指较小值
p=q;
q=r;
}
printf("这两个整数由大到小的顺序为%d,%d",*p,*q);
return 0;
}
【keys2】
#include <stdio.h>
int main()
{
int a,b,*p,*q,t;
printf("请输入两个整数\n");
scanf("%d,%d",&a,&b);
p=&a;
q=&b;
if(a<b)
{
t=*p; //改变a,b的值,不改变指针指向。即a是较大值,b为较小值;p永远指a,q永远指b
*p=*q;
*q=t;
}
printf("这两个整数由大到小的顺序为%d,%d",*p,*q);
return 0;
}
指针&一维数组
返回指针值的函数
有3名学生学习4门课,一号的成绩分别是65、67、70、60,二号分别是80、87、90、81,三号的分别是90、99、93、98。用指针函数来编程,要求在用户输入学生学号后输出该学生的各科成绩。
#include <stdio.h>
int main()
{
float a[3][4]={{65,67,70,60},{80,87,90,81},{90,99,93,98}};
float *p;
float *f(float(*hang)[4],int n);
int xuehao,i;
printf("请输入学生学号\n");
scanf("%d",&xuehao);
printf("%d号学生成绩分别为\n",xuehao);
p=f(a,xuehao-1);
for(i=0;i<4;i++)
printf("%f\t\n",*(p+i));
return 0;
}
float *f(float(*hang)[4],int n)
{
int *q;
q=(hang+n)[0];
return(q);
}