指针到底怎么指

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++
*的优先级没有++高

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



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容