标签:结合 span 位置 参数 应该 amp return 方式 font
C中经常要写一个对数组进行操作的函数,下面介绍一下,数组、指针和函数的应用:
指针和数组:
#include <stdio.h> #include <stdlib.h> int sum(int *ar,int n); int main() { int a[10]; int n=5,i; for(i=0;i<n;i++){ scanf("%d",&a[i]); } printf("%d",sum(a,n)); return 0; } int sum(int *ar,int n){ int i,total=0; for(i=0;i<n;i++){ total+=ar[i]; } return total; }
代码中,sum()函数的参数是一个数组的名字,数组的名字代表数组首元素的地址,在这里是一个int 的地址,因此应该把它赋给一个类型为指向int的指针的形式参量,于是得到代码中的函数原型。
用到数组时,往往需要知道何时开始和何时结束数组
第一种方式是把数组大小作为第二个参数传递给函数。
如上面那个代码 ↑
注:例子中可以用 int ar[]代替int *ar;(只不过int ar[]更强调这是一个数组)
第二种方式
#include <stdio.h> #include <stdlib.h> #define SIZE 10 int sump(int *start,int *end); int main() { int a[SIZE]={1,2,3,4,5,6,7}; printf("%d",sump(a,a+SIZE)); return 0; } int sump(int *start,int *end){ int total=0; while(start<end){ total+=*start++;//*和++优先级相等,但它在结合时是从右向左进行的 } return total; }
注:while循环中处理的是end所指向的位置之前的元素,即end实际指向的位置是数组之后的第一个位置,其是合法的。如果让end指向最后一个元素,就需要使用下面的代码,其不如上面的例子简洁
printf("%d",sump(a,a+SIZE-1));
指针和多维数组:
——————————-
以上内容参考自《C Primer Plus》
标签:结合 span 位置 参数 应该 amp return 方式 font
原文地址:http://www.cnblogs.com/LuRenJiang/p/6858406.html