9.在控制台上输入整数,创建一个长度为3的int数组,用数组的每一个元素的指针组成一个int指针数组,并通过这个int指针数组求int数组的最小值.
//9.在控制台上输入整数,创建一个长度为3的int数组,用数组的每一个元素的指针组成一个int指针数组,并通过这个int指针数组求int数组的最小值.
#include <stdio.h>
int main(){
//定义一个长度为3的int数组;
int arr[3]={0};
//定义一个数组元素指针,指向数组的首元素地址
int *p=arr;
10.已知int a=4; int *p=&a; int **ps=&p; int ***pss=&ps; 用指针pss把a的值改成100;
// 10.已知int a=4; int *p=&a; int **ps=&p; int ***pss=&ps; 用指针pss把a的值改成100;
#include <stdio.h>
int main(){
//定义一个整形变量和多个多级指针,都指向a的地址
int a=4;
int *p=&a;
int **ps=&p;
int ***pss=&ps;
printf("修改前a的值为:%d\n",a);
//***pss,**ps,*p最终指向的地址都是a
***pss=100;
printf("修改后a的值为:%d\n",a);
}
11.定义一个函数的指针,并使用.
// 11.定义一个函数的指针,并使用.
#include <stdio.h>
//函数声明
int add(int a,int b);
int llc(int (*p)(int a,int b));
int main(){
//定义3个整形变量
int num1=25;
int num2=11;
int num3=0;
//定义一个函数指针
int (*p)(int i,int y)=&add;
//调用指针函数p
num3=p(num1,num2);
//打印num3的值:
printf("num3=%d\n",num3);
num3=llc(p);
printf("num3=%d\n",num3);
}
//定义一个普通函数,参数a,b,返回a+b的值
int add(int a,int b){
return a+b;
}
//定义一个函数,参数为一个函数指针
int llc(int (*p)(int a,int b)){
//定义2个整型,用于接收用于输入的数字
int a=0;
int b=0;
printf("请输入2个数字,用','号隔开: ");
scanf("%d,%d",&a,&b);
return p(a,b);
}
12.定义一个指针型函数.
#include <stdio.h>
//指针函数声明
int *add(int *p);
int main(){
//指针函数.如:定义一个长度为5的整形数组,不使用主函数赋值,调用指针型函数进行赋值;
//先定义一个长度为5的数组,默认值是0
int arr[5]={0};
//定义一个指针,指向数组首元素
int *p=arr;
p=add(arr);
//将数组arr内的元素进行遍历
printf("数组arr内的元素为:\n");
for (int i=0; i<5; i++) {
printf("%d\t",arr[i]);
}
printf("\n");
return 0;
}
//定义指针函数型函数,add给数组arr赋值 参数也是一个指针*p,最后将p的地址返回
int *add(int *p){
for (int i=0;i<5;i++) {
scanf("%d",p+i);
}
return p;
}