- 1、本文档共108页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
#include stdio.h int main() { void sort(int array[],int n); int a[10],i; printf(enter array:\n); for(i=0;i10;i++) scanf(%d,a[i]); sort(a,10); printf(The sorted array:\n); for(i=0;i10;i++) printf(%d ,a[i]); printf(\n); return 0; } void sort(int array[],int n) { int i,j,k,t; for(i=0;in-1;i++) { k=i; for(j=i+1;jn;j++) if(array[j]array[k]) k=j; t=array[k]; array[k]=array[i]; array[i]=t; } } 在sort[i]~sort[9]中,最小数与sort[i]对换 7.7.3多维数组名作函数参数 例7.11 有一个3×4的矩阵,求所有元素中的最大值。 #include stdio.h int main() { int max_value(int array[][4]); int a[3][4]={{1,3,5,7},{2,4,6,8}, {15,17,34,12}}; printf(“Max value is %d\n”, max_value(a)); return 0; } 可以省略 不能省略 要与形参数组第二维大小相同 int max_value(int array[][4]) { int i,j,max; max = array[0][0]; for (i=0;i3;i++) for(j=0;j4;j++) if (array[i][j]max) max = array[i][j]; return (max); } 要与实参数组第二维大小相同 7.8局部变量和全局变量 7.8.1 局部变量 7.8.2 全局变量 7.8.1 局部变量 定义变量可能有三种情况: 在函数的开头定义 在函数内的复合语句内定义 在函数的外部定义 全局和局部变量 char ch; double fun2(char c) { float b; …… ch=c; } int x; main() { int m,n; …… } 在函数内部说明的变量是局部变量。 作用域:自说明位置起至函数结束止。 在函数外部说明的变量是全局部变量。 作用域:自说明位置起至文件结束止。 c b m,n ch x 在定义一个变量时,除了指定其数据类型外,还可以指定其存储类别。 C语言中用四个关键字来表示存储类别: auto ———— 自动的 register———寄存器的 static ——— 静态的 extern ——— 外部的 局部变量 全局变量 7.8.1 局部变量 自动变量(auto) int f(int a) { auto int b,c=3; …… } 自动变量在内存的动态存储区分配: 当函数(或分程序)执行时为自动变量分配存储空间; 当函数(或分程序)结束时释放自动变量所占的存储空间。 auto关键字可以省略。 寄存器变量(register) int f(int a) { register int i; …… } 寄存器变量存在于CPU的寄存器中: 当函数(或分程序)执行时为寄存器变量分配寄存器; 当函数(或分程序)结束时释放寄存器变量所占用的寄存器。 自动变量与寄存器变量之间的区别 自动变量 main() { int s=0,i; for(i=1;i=3;i++)s=s+i; …… } 寄存器变量 main() { register int s=0,i; for(i=1;i=3;i++)s=s+i; …… } CPU 运 算 器 寄存器 s i 内存 0 CPU 运 算 器 内存 s i 寄存器 运行分析 运行分析 1 1 3 1 0 1 1 2 0 1 3 1 2 寄存器变量的使用可以减少内存与CPU之间的数据交换,从而提高程序执行的效率。 静态的局部变量(static) 如:static int x; 静态的局部
文档评论(0)