您的位置 首页 方案

《C与指针》读书笔记二

关于指针变量的解引用在该书中有另外一种说法—-“间接访问”。我认为“间接访问”比较能更好的表达*Point实际含义。我不知道英文版中是怎么描述的

  关于指针变量的解引证在该书中有别的一种说法—-“直接拜访”。我以为“直接拜访”比较能更好的表达*Point实践含义。我不知道英文版中是怎样描绘的,可是这种翻译办法更能表达指针的物理含义。在我的搭档中“解引证”说法比较盛行。“直接拜访”彻底表达了指针变量和指针内容的含义。

  经过以下句子能够简略了解指针的含义。

  int a = 112;

  int b = -1;

  float c = 3.14;

  int *PointA ;

  float *PontB;

  PointA = &a;

  PontB = &c;

  经过一下内存模型来了解,就特别便利。

  PointA = &a; 是使PointA指向a变量的地址,PointA的地址为0x101 02,值为0x100 00。*PointA表达了对0x100 00地址的拜访,所以是“直接拜访”。

  除了着重指针“直接拜访”,指针能够用于管用运算。这在初级入门的书本中是不介绍的。其实指针管用运算也有很大的使用。

  int a[10];

  int *Point;

  Point = &a[0];

  Point ++;

  Point +=6;

  Point = &a[0]; 是将数组a的第一个元素的地址赋给Point,与Point = a;彻底等价的。数组的称号代表了数组的开始地址。图解如下:

  Point++;履行完毕后,0x101 02地址内容为0x100 00,Point存入的地址为a[0]的地址。假如* Point直接拜访是a[0]的值。 Point +=6;履行完毕后,0x101 02地址内容为0x100 06,假如* Point直接拜访是a[6]的值。

  经过这儿了解,就能够得出指针在传递很多参数时所体现出的功率十分高。由于只要将a数组的地址和长度传递给东西函数即可。这儿的“东西”函数能够了解为加工处理数据的函数,比方队一组数组排序的函数。最常见的书冒泡排序。

  void bubbleSort( int sort[], unsigned char len )

  {

  char i,j;

  int temp;

  len -= 2;

  for( i =len; i>=0; i–)

  {

  for( j =0; j<=i; j++)

  {

  if( sort[j+1] < sort[j])

  {

  temp = sort[j];

  sort[j]=sort[j+1];

  sort[j+1]=temp;

  }

  }

  }

  }

  在bubbleSort函数中,使用了sort便是地址。Len即书排序的数据。调用办法如下:

  bubbleSort( Tarrary, 5);

  只需要一个指针传送一个地址,和一个长度,完成了对Tarrary数组的排序。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/115224.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部