编程题
一、定义一个数组,从键盘输入10个整数,将10个数字中的最大值和最小值进行位置交换 (使用指针的方式)。
代码如下:
#include"pch.h" #include<stdio.h> void SWAP(int*p1, int*p2); int main() { int a[10]; for (int i = 0; i < 10; i++) { scanf_s("%d", &a[i]); } int*min = &a[0]; int*max = &a[0]; for (int i = 0; i < 10; i++) { if (a[i]>*max) { max = &a[i]; } if (a[i]<*min) { min = &a[i]; } } printf("%d %d\n", *min, *max); printf("交换前地址%p,%p\n", min, max); SWAP(min,max); return 0; } void SWAP(int*p1,int*p2) { int*temp; temp = p2; p2 = p1; p1 = temp; printf("%d %d\n", *p1, *p2); printf("交换后地址%p,%p\n",p1, p2); }
结果如下:
二、有如下一段字符串” ajskldjfklajdfl ”,自定义一个函数统计出其中j字符在该字符串中所出现的次数。(使用指针的方式实现)
代码如下:
结果如下:
简答题:
1.请说明数组指针和指针数组的区别:
数组指针是一个指针变量,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间,是存放指针的数组。
2.请说明函数指针与指针函数的区别:
指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针
函数指针是指向函数的指针变量,即本质是一个指针变量。