12月10号指针

指针

 

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; 

原文地址:https://www.cnblogs.com/hmzxwky/p/5037945.html