指针和数组(上)

1)指针基础:

既然程序中的变量只是一段存储空间的别名,那么是不是必须通过这个别名才能使用这段存储空间,

  int main()

    { 

         int i=5;

         int *p=&i;

        printf("%d,%08x ",i,p);

       *p=10;

      printf("%d,%08x ",i,p);

      return 0;

 }

指针本质:

指针在本质上也是一变量,

指针需要要占用一定的内存空间,

指针用于保存内存地址的值,

*号的意义:

在指针声明时,*号表示所声明的变量为指针,

在指针使用,*号表示取指针所指向的内存空间中的值,

//指针声明:

int i=0;

int j=0;

int *p=&i;      *号类似一把钥匙,通过这把钥匙可以打开内存,读取内存中的值。

//取值:

j=*p;

指针占用的内存空间,

指针的地址,

通过*号写内存,

传值调用与传址调用:

    指针是变量,因此可以声明指针参数,

    当一个函数体内都需要改变实数参的值,则需要使用参数,

    函数调用时实参值复制到形参,

    指针适用于复杂数据类型作为参数的函数中,

利用指针实现变量交换函数,

const int* p;  //p可变,p指向的内容不可变,

int const *p;//p 可变,p指向的内容不可变,

int *const p;//p 不可变,p指向的内容可变,

const int* const p;  //p和p指向的内容都不可变,

当const 出现在*号左边时指针的数据为常量,

当const 出现在*后右边时指针本身为常量,

指针小结:

指针是c语言中一种特别的变量,

指针所保存的值是内存的地址,

可以通过指针修改内存中的任意地址内容,

原文地址:https://www.cnblogs.com/dpf-learn/p/6116055.html