指针,我觉得这算是一个很鸡肋的设定。
首先,对变量的访问都是通过地址进行的。我们能直接使用直接访问方式访问变量位置,而指针却是以间接访问的方式进行的,如果我要用a里面的东西,却用b的东西去访问a的,在平时的编程中就显得些许复杂。
但是呢,指针与数组结合一下,便能使程序更加易懂,这里就是要用到指针的位移(移动指针位置)。
指针变量又是一种什么形式呢?很好理解,就是一般定义中间加一个星号,既:类型名 (空格)*指针变量名;例如:int *p; float *p1;。类型名不一样所对应的指针类型也不一样。如果int类型的普通变量赋值给float类型的指针变量,那么所输出的值会是什么样的呢?
int a,*p;
p=&a;
这里&a是整型变量a的地址,在用vicual c++ 6.0编译时就会出现一个warning;"把一个int *型数据转换为float *数据"。赋值时系统就会把&a的基类型自动改换为float型,然后赋值给p。所以输出值就是float型的了。但是p不能用这个地址指向整型变量。
指针如此简单。