c/c++第十三天
来源:互联网 发布:物理tracker软件 编辑:程序博客网 时间:2024/06/05 05:10
数组作为函数的参数
#include<stdio.h>void fun();void main(){ int a[3]={1,2,3}; fun(a); printf("%d",a[2]);}void fun(int a[]){ a[2]=0;}
结果:1 2 0
数组作为参数传递时,形参改变的是原地址上的值。
数组指针
问题:有一个班,3个学生,各学4门课,计算总平均分数以及第n个学生的成绩。
#include<stdio.h>void fun1();void fun2();void main(){ float a[3][4]; float *p=&a[0][0]; //替换成 float *p=a 会报错 for(int i=0;i<=2;i++){ printf("输入第%d个学生四门成绩:\n",i+1); for(int j=0;j<=3;j++){ scanf("%f",&a[i][j]); fflush(stdin); } } fun1(a); fun2(p);}void fun1(float *p){ float t=0; for(int i=0;i<=2;i++){ float s=0; for(int j=0;j<=3;j++){ s+=*(p+i*4+j); } t+=s/4; } printf("总平均分数:%f\n",t);}void fun2(float *p){ int n; printf("输入n,查看第n个学生成绩:"); scanf("%d",&n); for(int i=0;i<=3;i++){ printf("%f\t",*(p+(n-1)*4+i)); }}
结果:
如果把 float *p=&a[0][0]; //替换成 float *p=a 会报错
这里可以用到指针数组
#include<stdio.h>void fun1();void fun2();void main(){ float a[3][4]; float (*p)[4]=a; //数组指针 for(int i=0;i<=2;i++){ for(int j=0;j<=3;j++){ scanf("%f",&a[i][j]); fflush(stdin); } } fun1(a); fun2(p);}void fun1(float (*p)[4]){ float t=0; for(int i=0;i<=2;i++){ float s=0; for(int j=0;j<=3;j++){ s+=p[i][j]; } t+=s/4; } printf("总平均分数:%f\n",t);}void fun2(float (*p)[4]){ int n; printf("输入n:"); scanf("%d",&n); for(int i=0;i<=3;i++){ printf("%f\t",p[n-1][i]); }}
float (*p)[4]=a; 定义了数组指针p指向二维数组a,[4]为数组第二维的长度。
函数指针
可以定义一个指向函数的指针变量,用来存放某一函数的起始地址,这就意味着此指针变量指向该函数。如:
int (*p)(int i);
int (*p)();
void (*p)(int i);
void (*p)();
#include<stdio.h>int fun1(int a,int b){ return a+b;}void fun2(){ printf("0");}void main(){ int (*p1)(int a,int b); p1=fun1; printf("%d ",p1(1,2)); void (*p2)(); p2=fun2; p2();}
结果:3 0
0 0
- c/c++第十三天
- C语言学习第十三天(练习)
- C语言学习第十三天下午(链表)
- C语言学习第十三天上午(结构体)
- 黑马程序员--IOS基础第十三天(C语言)
- C语言第三天
- C语言第三天
- c第三天
- C语言第三天
- c/c++第三天
- Object-C 第三天
- C语言实训第三天
- IOS第十三天——使用Obj-C中的高级类
- 第十三天
- 第十三天
- 第十三天
- 第十三天
- 第十三天
- HDU5818(模拟)
- Java泛型-类型擦除
- UE4控制三自由度动感平台
- HDU 2255 (KM()算法)
- 计算机快捷键
- c/c++第十三天
- 洛谷 P2383 狗哥玩木棒
- POJ 3253 Fence Repair 优先队列
- 有关位操作的总结
- leetcode 58. Length of Last Word
- HDOJ 2570 迷瘴
- 函数,指针与函数的关系,函数指针,指针函数
- C++中用rand()和srand()产生为随机数方法介绍
- leetcode347:Top K Frequent Elements(medium)