指针

用处:

访问函数在函数内部需要改变外部传入的变量值

函数里面需要得到一个连续存储空间的首地址

动态分配内存,需要记录分配内存的首地址


 

1.指针类型:

  int * 整形指针

  char* 字符串

  float* 浮点指针

  指针变量在64位机内存里占8个字节。

2.指针只能指向某一块地址,不能给常量值  

  int* p = 10;错误;

  int a = 10; int * p =& a;正确;

  *p=20; 改变了a 的值(p=a的地址,*取地址里的值)

3.指针和数组的关系:

  int array[5] = {};  

  array = &array[0], array+1 = &array[1]...数组名为数组首地址,地址加1相当于地址加上一个元素占据的字节。

  array[0] = *(array +0), array[1] = *(array +1)...

4.常量指针    不可以改变指向变量的值,但是可以改变指向

  int a =10; int b = 20;

  const int * pa = &a;

  *pa = 20;X

  pa = &b;

5.指针常量   可以改变指向变量的值,但是不可以改变指向

  int a =10; int b = 20;

  int *const  pa = &a;

  *pa = 20;

  pa = &b;X

6.指向常量的常量指针    不可以改变指向变量的值,不可以改变指向

  const int *const pa = &a; 

7.函数指针

int add (int a,int b){

}

int (*pfunction)(int,int) = add;  //函数指针

int result = pfunction(3,4);

pfunction = aadd;  //指向另一个函数

posted @ 2015-12-10 16:34  浪味小仙女  阅读(134)  评论(0编辑  收藏  举报