数据结构和C语言的学习笔记【指针(1)】
第八章善于利用指针程序代码(代码有部分改动)
8.2 指针变量
例题:8.1
#include<stdio.h>
int main()
{
int a = 100, b = 300;
int* p1,* p2;
p1 = &a;
p2 = &b;
printf("a=%d,b=%d\n", a, b);
printf("*p1=%d,*p2=%d", *p1, *p2);
}
例题:8.2
#include<stdio.h>
int main()
{
int a, b, * p1, * p2;
printf("请输入两个数:");
scanf_s("%d", &a);
scanf_s("%d", &b);
p1 = &a;
p2 = &b;
printf("a=%d,b=%d\n", a, b);
if (a > b)
{
printf("%d>%d", a, b);
}
else
{
printf("%d>%d", b, a);
}
}
例题:8.3
#include<stdio.h>
int main()
{
int a, b, * p1, * p2;
void swap(int*, int*);
printf("请输入两个数:");
scanf_s("%d", &a);
scanf_s("%d", &b);
p1 = &a;
p2 = &b;
if(b>a)
swap(p1,p2);
printf("max=%d,min=%d",*p1,*p2);
}
void swap(int* p1, int* p2)
{
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
例题8.4
#include<stdio.h>
void exchange(int* p1, int* p2, int* p3);
int a, b, c;
int* p1, * p2, * p3;
int main()
{
printf("请输入三个数字:");
scanf_s("%d%d%d", &a, &b, &c);
p1 = &a;
p2 = &b;
p3 = &c;
exchange(p1,p2,p3);
printf("max=%d,mid=%d,min=%d", a, b, c);
}
void exchange(int *p1,int *p2,int *p3)
{
void swap(int *pt1, int *pt2);
if (*p1 < *p3) swap(p1, p3);
if (*p2 < *p3) swap(p2, p3);
if (*p1 < *p2) swap(p1, p2);
}
void swap(int *pt1,int *pt2)
{
int temp;
temp = *pt1;
*pt1 = *pt2;
*pt2 = temp;
}