linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > c/c++/c# >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·Windows/Linux下配置Eclipse+C
·c语言static与extern的用法
·VC++(Ctime日期函数)应用
·typedef struct和struct的区别
·C/C++对文件操作
·C常用算法程序实例-线性代数方
·C#发送Email邮件方法总结
·struct的初始化,拷贝及指针成
·C语言入门实例 switch使用
·c++二叉树实现源代码
·对初学者的建议:如何学习C语言
·C++ Builder 处理控件中的文本
·常用的BCB & Delphi 函数
·C++入门经典教程完全版01-引言
·C++ Builder 使用Canvas对象的
最新文章
·使用C/C++扩展Python
·C语言入门实例 switch使用
·在C#里实现DATAGRID的打印预览
·如何使用 Visual C# .NET 创建
·C#发送Email邮件方法总结
·一道C#面试题目引发的思考
·c语言艺术清屏
·c语言static与extern的用法
·大数的阶乘算法
·C#编码好习惯
·构造函数,复制构造函数
·typedef struct和struct的区别
·struct的初始化,拷贝及指针成
·超强的指针学习笔记推荐
·STL中erase方法对链表类容器的
Google
 
C/C++中多维数组的指针作为函数参数传递
[ 作者:  加入时间:2007-10-23 14:00:11  来自:Linux联盟收集整理 ]
*程序作者:管宁 UFsLinux联盟
站点:www.cndev-lab.com UFsLinux联盟
所有稿件均有版权,如要转载,请务必著名出处和作者*/
UFsLinux联盟
UFsLinux联盟
#include <stdio.h> UFsLinux联盟
UFsLinux联盟
main() UFsLinux联盟
{ UFsLinux联盟
void search_score(); /* 定义自定义涵数类型为不返回型 */ UFsLinux联盟
void count_avg(); /* 定义自定义涵数类型为不返回型 */ UFsLinux联盟
static float a[3][4]={{97,45.5,66,77},{88,92.5,78.5,66},{83,74.5,92,100}}; /* 输入3个学生的各自4门课的成绩 */ UFsLinux联盟
search_score(a,0); /* 调换自定义涵数显示其中一个同学的各门课成绩 */ UFsLinux联盟
count_avg(*a,12); /* 调换自定义涵数显示3个同学各门课的平均成绩成绩 */ UFsLinux联盟
/* 注意上面的*a其实也就是a[0]或者是&a[0][]0将这行改写成count_avg(a[0],12);或者count_avg(&a[0][0],12)也都是对的 */ UFsLinux联盟
} UFsLinux联盟
UFsLinux联盟
void search_score(p,n) UFsLinux联盟
float (*p)[4]; /* 定义一个指针变量p,说明它是一个指向一个包含4个整型变量一维数组的指针 */ UFsLinux联盟
int n; /* 定义形式参数n为整形 */ UFsLinux联盟
{ UFsLinux联盟
int i; /* 定义用于循环的变量i */ UFsLinux联盟
for (i=0;i<4;i++ ) /* 这里循环4次用于打印一个同学的4门课成绩 */ UFsLinux联盟
{ UFsLinux联盟
printf("%7.2f",*(*(p+n)+i)); UFsLinux联盟
} UFsLinux联盟
printf("\n"); UFsLinux联盟
} UFsLinux联盟
UFsLinux联盟
void count_avg(p,n) UFsLinux联盟
float *p; UFsLinux联盟
int n; UFsLinux联盟
{ UFsLinux联盟
float *p_end; UFsLinux联盟
float sum = 0; UFsLinux联盟
float avg; UFsLinux联盟
p_end = p+n-1; /* 计算出最后一个数组元素的地址 */ UFsLinux联盟
UFsLinux联盟
for (;p<=p_end;p++) /* 循环到最后一个元素地址就停止 */ UFsLinux联盟
{ UFsLinux联盟
sum += *p; UFsLinux联盟
} UFsLinux联盟
avg = sum/n; UFsLinux联盟
printf("avg=%7.2f\n",avg); UFsLinux联盟
} UFsLinux联盟
UFsLinux联盟
/* UFsLinux联盟
注意此题的意思在于输入3个同4门课的成绩,计算出平均值和显示其中一个同学的4门课成绩,此例是对多维数组指针和多维数组 UFsLinux联盟
的指针作为涵数参数传递的总结,认真联系和体会可以很好的了解多维数组指针的概念到底是什么! UFsLinux联盟
*/
UFsLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·c/c++中结构体(struct)知识点强化,链表的学习  (2007-10-23 14:09:55)
 ·c/c++中结构体的入门教程  (2007-10-23 14:08:41)
 ·C/C++中命令行参数的原理  (2007-10-23 14:07:35)
 ·C/C++中利用空指针(NULL),提高程序运行效率  (2007-10-23 14:07:04)
 ·c/c++中的字符指针数组,指向指针的指针的含义  (2007-10-23 14:06:26)
 ·c/c++中字符串常量的不相等性,以及字符串的copy  (2007-10-23 14:05:52)
 ·C/C++中数组和指针类型的关系的入门教程  (2007-10-23 14:03:24)
 ·C/C++中枚举类型(enum)的入门教程  (2007-10-23 14:02:09)
 ·c/c++关于多维数组指针变量  (2007-10-23 13:59:30)
 ·c/c++中利用数组名和指针进行排序的例子  (2007-10-23 13:58:50)