void minmax(int a[], int len, int *min, int *max) {
int i;
*min = *max = a[0];
for(i = 1; i < len; i++) {
if(a[i] < *min) {
*min = a[i];
}
if( a[i] > *max) {
*max = a[i];
}
}
}
//传入min, max地址 通过函数返回了需要的min, max
//传入的参数实际上是要保存待会结果的变量
int main(int argc, const char * argv[]) {
int a[] = {1,2,3,4,5,6,7};
int min, max;
minmax(a, sizeof(a) / sizeof(a[0]), &min, &max);
return 0;
}
传入函数中的数组是传入了什么,其实就是传入了指针,仅仅是样子像数组。
但是可以用数组的[]运算,数组变量是特殊的指针。
int a[] --> int * const a;
const int a[] = {1,2,3,4,5};
数组变量已经是const 又被const修饰表示
数组的每个单元都是 const int
可以保护数组不被修改
*p++
*的优先级没有++高
指针
用来带出来值
修改值
用来动态分配内存
网友评论