?1.通過地址運算符&獲得地址值
#include<stdio.h>
main()
{
int a,*p1;
p1=&a;
*p1=123;
printf("%d,%d\n",a,*p1);
scanf("%d",p1);
printf("%d,%d\n",a,*p1);
}
?
2.輸入a,b,按從小到大的順序輸出
#include<stdio.h>
main()
{
int a,b,*p=&a,*q=&b,*t;
scanf("%d,%d",p,q);
if(*p<*q){
t=p;p=q;q=t;
}
printf("a=%d,b=%d\n",a,b);
printf("最大值=%d,最小值=%d\n",*p,*q);
}
3
3.用指針法訪問數(shù)組元素
#include<stdio.h>
main()
{
int a[10],i,*p=a;
for(i=0;i<10;i++)
scanf("%d",p+i);
for(i=0;i<10;i++)
printf("%4d",*(p+i));
printf("\n");
}
?4.從鍵盤輸入10個整數(shù),放入一堆數(shù)組a中,然后將該數(shù)組中的元素值依次輸出
#include<stdio.h>
main()
{
int *p,i,a[10];
p=&a[0];
for(i=0;i<10;i++)
scanf("%d",p++);
p=&a[0];
for(i=0;i<10;i++)
printf("%4d",*p++);
printf("\n");
}
?5.將10個數(shù)的最小值換到最前面的位置
#include<stdio.h>
main()
{
int t,a[10],*p,*q;
for(p=a;p<=a+9;p++)
scanf("%d",p);
for(q=a,p=a+1;p<=a+9;p++)
if(*p<*q)q=p;
printf("最小值:%d\n",*q);
printf("最小值的位置:%d\n",q-a);
t=*a;*a=*q;*q=t;
printf("交換之后的10個數(shù)是:\n");
for(p=a;p<a+10;p++)
printf("%4d",*p);
printf("\n");
}
6.求二維數(shù)組元素的最大值
#include<stdio.h>
main()
{
int a[3][4]={{5,1,-8,11},{26,-7,10,129},{2,18,7,16}},*p,max;
for(p=&a[0][0],max=*p;p<&a[0][0]+12;p++)
if(*p>max)max=*p;
printf("MAX=%d\n",max);
}
?7.用指針法實現(xiàn)字符串的復(fù)制
#include<stdio.h>
main()
{
char a[80],b[80];
char *p1,*p2;
gets(a);
for(p1=a,p2=b;*p1!='\0';p1++,p2++)
*p2=*p1;
*p2='\0';
printf("字符串a(chǎn)中的內(nèi)容:%s\n",a);
printf("字符串b中的內(nèi)容:%s\n",b);
}
8.將具有10個元素的整數(shù)型數(shù)組中的元素值按逆序存放后輸出
#include<stdio.h>
void swap(int *x,int *y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
main()
{
int a[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<=4;i++)
swap(&a[i],&a[10-i-1]);
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
}
9.用一個函數(shù)求10個學(xué)生成績的最高分,最低分和平均成績
#include<stdio.h>
float fun(int *x,int n,int *p1,int *p2)
{
int i;
float s=0;
*p1=*p2=x[0];
for(i=0;i<n;i++)
{
s=s+x[i];
if(*p1<x[i]) *p1=x[i];
else if(*p2>x[i])*p2=x[i];
}
return s/n;
}
main()
{
int i,a[10],max,min;
float ave;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%4d",a[i]);
ave=fun(a,10,&max,&min);
printf("\n 平均值=%6.2f,最大值=%d,最小值=%d\n",ave,max,min);
}
?10.求10個數(shù)中的最大值,通過函數(shù)返回最大值元素的地址的方法來實現(xiàn)
#include<stdio.h>
int *fun(int *x,int n)
{
int i,*y;
y=x;
for(i=1;i<n;i++)
if(*(x+i)>*y)y=x+i;
return y;
}
main()
{
int a[10],*p,i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
p=fun(a,10);
printf("最大值=%d\n",*p);
}
文章來源:http://www.zghlxwxcb.cn/news/detail-757846.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-757846.html
到了這里,關(guān)于有關(guān)C語言指針的經(jīng)典例題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!