指针:指针其实就是特殊的变量。
- 变量是什么?
那我们先来看看普通的变量(int a=0;),我们翻译一下这段代码的意思:在存储空间开辟一块整型数据的空间,它存储的值是0;这段空间的名字取作a;(当然a只是C程序的识记符号,编译之后变量名就会转换成相应的地址)。
- 特殊是什么意思?
Int *p=1;特殊之地p是指针变量------p不再是1这个数据的名字,它是1这个数据的地址的名字。
- 为什么要设计指针类型?
前面我们说过,数据类型的作用是规定数据的操作方式和范围,功能是降低编程难度(功能和作用的定义有实质的区别,详情见之前的博文);我的这种说法很概括,但也很清晰。它与普通类型最常用的对比是什么?大家应该都很清楚,就是定义一个数组排序函数(指针变量)和一个数据交换函数(普通变量),来测试是否对形参的改变会影响实参的值;当你调用一个函数的时候,你会将实参填入(被调函数如若有参数)调用式,为了保证数据的安全,其实本质上是将实参的一个副本给了被调用函数使用,当你给的副本是地址,被调用函数当然操作的就是实参本体了。
指针的运用其实是考验一个C程序员的编程功力,这句话经常有人这样说;这话听起来总感觉有些故意吓人的嫌疑,但得承认,它肆无忌惮的对内存的访问,确实是个危险的小东西。当然以上都是一些简单的概念性的东西,如何运用又是另一回事了!
- C++为什么会加入引用类型?
不是说好的C吗,谈啥C++?好吧暂时不谈,暂时。。。