指针到底怎么指

2016-07-30  本文已影响4人  Isy
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++
*的优先级没有++高

指针
用来带出来值
修改值
用来动态分配内存



上一篇 下一篇

猜你喜欢

热点阅读