//编程案例:请输入的两个整数按大小顺序输出。现用函数处理,而且用指针类型的数据作函数参数//解题思路://定义一个函数,将指向两个整型变量的指针作为实参传递给该函数的形参指针变量,在函数中通过指针实现交换两个变量的值。#include<stdio.h>voidswap(int* px,int* py){int temp;
temp =*px;*px =*py;*py = temp;}intmain(){int a, b;int* pa,* pb;printf("请输入两个整数(a,b):");scanf_s("%d,%d",&a,&b);
pa =&a;
pb =&b;if(a < b)swap(pa, pb);printf("max=%d,min=%d", a, b);return0;}
2. 指针引用数组
//在引用数组元素时指针的运算//加一个整数(+/+=):p+1//减一个整数(-/-=):p-1//自加运算:p++,++p//自减运算:p--,--p//两个指针相减,p1-p2(只有P1和p2都指向同一数组中的元素时才有意义)//通过指针引用数组元素//1.下标法:a[i]//2.指针法:*(a+i)/*(p+i)//其中a是数组名,p是指向数组元素的指针变量,其初值p=a#include<stdio.h>intmain(){int a[10]={1,3,5,7,9,11,13,15,17,19};int*pa = a;//将数组首地址给指针变量pa;//下标法for(int i =0; i <10; i++)printf("%4d", a[i]);printf("\n");//指针法1for(int i =0; i <10; i++)printf("%4d",*(pa + i));printf("\n");//指针法2for(int i =0; i <10; i++)printf("%4d",*(a + i));printf("\n");return0;}
//指针引用字符串//字符串是存放在字符数组中的,引用一个字符串,可以有以下两种方法://1.通过数组名和格式声明"%s"输出该字符串,也可通过数组名和下标引用字符串中的一个字符//2.通过字符指针变量引用字符串常量。//编程:定义一个字符数组,在其中存放字符串"I Love China!",输出该字符串和第8个字符//思路:定义字符数组string,对它初始化,由于初始化时字符的个数是确定的,因此可不必指定数组的长度。用数组名string和输出格式%s可以输出整个字符串。用数组名和下标可以引用任一数组元素#include<stdio.h>intmain(){char str[50]="I Love China!";printf("str=%s\n", str);char*pstr ="I Love China!";printf("str=%s\n", pstr);return0;}