首页 > 代码库 > 指针和引用、值传递和引用传递

指针和引用、值传递和引用传递

1、指针和引用

     指针是一个变量,它存储的是内存地址;引用和原来的变量是同一个,对引用修改会改变原变量,而修改指针只是修改了指向的内存

     可以有const指针、但是没有const引用;指针可以多级int **p;引用只有1级 int &&p不合法

     指针可空,引用必须初始化;指针可以修改,可以指向别的变量;引用不能修改,只能是那个变量的引用

2、值传递和引用传递

    值传递,会创建变量的一个临时副本,对它修改不会改变原变量

    引用传递,因为引用是原变量的一个别名,对引用修改会改变原值

    指针作为函数参数时,本质也是值传递,改变指针没效果,改变*p会修改它指向的变量

3、指针数组和指向数组的指针、指针函数和函数指针

     int *p[4];存储指针的数组          int (*p)[4];指向数组首地址的指针

     int * f();返回值为指针             int (*p)指向函数地址的指针

4、const修饰符

    const int *p表示 *p不可修改                   int * const p 表示p不可修改

    const在*左边,修饰*p, 在右边修饰p

 

指针和引用、值传递和引用传递