sofard

导航

指针,引用,数组

指针与引用的定义与区别

1. 指针:指针是一个变量,存储的是一个地址,指向内存的一个存储单元;

    引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已;

2. NULL,初始化,能否改变

3. sizeof() 大小

4.函数参数传递,引用不会拷贝任何副本,指针还是拷贝指针副本

//////////////////////////////////////////////////////////////////////

指针与数组关系

int a[10]; int (*p)[10];  p = &a;  

&a 表示 一个指向10个int型数组 的 指针

(&a)[0] 表示  10个int型数组, 其实就是a,(&a)[1],起始地址是 a[10] 所在的地址

&a[0]--->&(a[0]) 表示 一个 int型指针   ///[] 优先级 高于 &

int * k ;     k=a;               这时候 a 被 编译器转化为 指向第一个元素的指针

*a ;         * 操作符作用于指针,因此  a 被 编译器转化为 指向第一个元素的指针

*(a+1); +操作符不能用于数组,因此 a 被 编译器转化为 指向第一个元素的指针

a[0] === *(a+0) ; 数组下标运算本质会转化为指针运算,因此 a 被 编译器转化为 指向第一个元素的指针

 

void f(char str[]) /* 会被调整为: void f(char *str) */

 

posted on 2018-10-20 13:34  sofard  阅读(226)  评论(0编辑  收藏  举报