大道至简,何以见得不是局中人。
书之所以这么难以看懂,大概是因为需要有些悟性。(书上的内容并不会阐述的很详细,只是够讲清楚罢了,更多的内容还需要自己去悟。)
参数传递方式
1、对象作为函数参数
传递的是值,单向传递。形参的改变不会引起实参的改变。因为形参与实参本身的地址不同,是两个空间。
2、对象指针作为函数参数
传递的是地址,形参的改变会引起实参的改变。虽然是两个空间地址,但两个地址指向的是同一个内容;所以改变任何一个地址的值,另一个地址的值也就发生了变化。
3、引用作为函数参数
传递的是引用,定义形参时,并没有在内存中开辟空间,而是当实参传递时,形参初始化指向了实参所在的地址,所以形参与实参虽然是两个名字,但代表的同一个地址。
总结
传递指针和传递引用,两种方式本质是没有什么不同都是对内存地址进行操作,区别就是引用不额外开辟空间,“指针”需要单独开辟空间。