6.11随笔

一、指针就是变量

  虽然申明指针的时候也提类型,如:

  char *p1;

  int *p2;

  float *p3;

  double *p4;

  .....

  但是,这只表示该指针指向某类型的数据,而不表示该指针的类型。说白了,指针都是一个类型:四字节无符号整数。

二、指针只能在算术表达式、赋值表达式和关系表达式中进行合法操作

  p++、p--之类的运算并不是让p这个“四字节无符号整数”加一或减一,而是让它指向下一个或上一个存储单元,它实际加减的值就是它所指类型的值的size。

  比如:

  char *型指针,每次加减的改变量都是1;

  float *型的指针,每次加减的改变量都是4;

  void *型指针无法加减。

  还要注意的是:指针不能相加,指针相减的差为int型。正是因为指针有着不同于其它变量的运算方式,所以,在任何时候用到指针都必须明确“指针的类型”(即指针所指的变量的类型)。

三、用指针做参数,传递的是指针的值,不是指针的本身

  要理解参数传递,首先必须把“形参”与“实参”弄明白。

  函数A在调用函数B时,如果要传递一个参数C,实际是在函数B中重新建立一个变量C,并将函数A中的C值传入其中,于是函数B就可以使用这个值了,在函数B中,无论有没有修改这个C值,对于函数A中的C都没有影响。函数B结束时,会将所有内存收回,局部变量C被销毁,函数B对变量C所做的一切修改都将被抛弃。

  以上示例中,函数A中的变量C称为“实参”,函数B中的变量C被称为“形参”,调用函数时,会在B函数体内建立一个形参,该形参的值与实参的值是相同的,但是形参的改变不影响实参,函数结束时,形参被销毁,实参依然没有发生变化。

  指针是变量,所以他也符合

posted @ 2017-06-12 00:14  云随风走  阅读(129)  评论(0编辑  收藏  举报