数组参数与指针
数组作为函数形式参数时,实际是以指针的形 式实现 double average(
double *a, int n){ double sum=0.0; int i; for(i=0;i<n;i++) sum+=*(a+i); return sum/n; } 只对b[5]-b[10] 求平均值如何处 理??
6.1 指针变量的定义和使用
指针变量的定义
定义形式如下: 数据类型 *指针变量名; 如: int *p1, num; 表示的意思为: 定义了一个指针变量p1,它指向的是一个 整型数据。或者说,p1中应存储的是一个 整型变量的地址。 注意:指针变量定义了之后,需要给它赋 一个确定的变量的地址。
指针变量赋值
10
q a[0] a[1] … a[9]
6.2 指针作为函数参数
函数调用时实参按值传递
main函数数据区 void swap( int x, int y ){ int t; 执行前 a swap函数数据区
t = x; x = y; y = t;
}
5
5 3
x y
b
3
int main(){ int a=5, b=3;
指针作为函数参数示例
用一个函数实现两个整数除法,要求返回整除 的商和余数
用return语句不能返回两个值 用参数返回值,参数必须是指针形式
void division(int d1, int d2, int *tp, int *rp) { *tp = d1 / d2; *rp = d1 % d2; } int main(){ int q, r; division(40, 3, &q, &r); printf(“40/3 yield "); printf("quotient= %d ", q); printf("remainder =%d\n", r); return 0; }