新手入门:C/C++中数组和指针类型的关系

2016-02-19 20:01 5 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的新手入门:C/C++中数组和指针类型的关系懂设计的网友们快点来了解吧!

【 tulaoshi.com - 编程语言 】

对于数组和多维数组的内容这里就不再讨论了,前面的教程有过说明,这里主要讲述的数组和指针类型的关系,通过对他们之间关系的了解可以更加深入的把握数组和指针特性的知识!  一个整数类型数组如下进行定义: !-- frame contents -- !-- /frame contents -- int a[]={1,2,3,4};   假如简单写成:a;//数组的标识符名称  这将代表的是数组第一个元素的内存地址,a;就相当于&a[0],它的类型是数组元素类型的指针,在这个例子中它的类型就是int*
  
  假如我们想访问第二个元素的地址我们可以写成如下的两种方式:&a[1]; 
   
  a+1//注重这里的表示就是将a数组的起始地址向后进一位,移动到第二个元素的地址上也就是a[0]到a[1]的过程!  数组名称和指针的关系其实很简单,其实数组名称代表的是数组的第一个元素的内存地址,这和指针的道理是相似的!  下面我们来看一个完整的例子,利用指针来实现对数组元素的循环遍历访问!#include iostream 
  using namespace std; 
   
  void main(void) 
  { 
      int a[2]={1,2}; 
   
      int *pb=a; //定义指针*pb的地址为数组a的开始地址 
   
      int *pe=a+2; //定义指针*pb的地址为数组a的结束地址 
   
      cout  a  ""  a[0]  ""  *(a+1)  ""  pb  ""  *pb endl; 
       
      while (pb!=pe) //利用地址进行逻辑判定是否到达数组的结束地址 
      { 
          cout  *pb  endl; 
          pb++; //利用递增操作在循环中将pb的内存地址不断向后递增 
      } 
      cin.get(); 
  } 更多内容请看C/C++技术学堂  C/C++技术专题  Solaris基础知识入门专题,或

来源:http://www.tulaoshi.com/n/20160219/1622536.html

延伸阅读
笔者在开发某软件过程中碰到这样一个问题,前级模块传给我二进制数据,输入参数为 char* buffer和 int length,buffer是数据的首地址,length表示这批数据的长度。数据的特点是:长度不定,类型不定,由第一个字节(buffer[0])标识该数据的类型,共有256(28 )种可能性。我的任务是必须对每一种可能出现的数据类型都要作处理,并且我的模块包...
C#中数组是引用类型,C#定义整型数组方式是:int [] intArray = {1,2,3};或int [] intArray = new int;而C++中定义整型数组的方式是:int intArray[] = {1,2,3};或int * intArray = new int;C#中的数组可以是一维的也可以是多维的,同样也支持矩阵和参差不齐的数组。注意:定义多维数组(矩阵)的方式是[,,]而定义多维“参差矩阵”的方式是[]...
/*程序作者:管宁 站点:www.cndev-lab.com 所有稿件均有版权,如要转载,请务必闻名出处和作者*/ #include stdio.h main() { void search_score(); /* 定义自定义涵数类型为不返回型 */ void count_avg(); /* 定义自定义涵数类型为不返回型 */ static float a[3][4]={{97,45.5,66,77},{88,92.5...
在学习c/c+过程中,指针是一个比较让人头痛的问题,稍微不注重将会是程序编译无法通过,甚至造成死机。在程序设计过程中,指针也往往是产生隐含bug的原因。下面就来谈谈指针的应用以及需要注重的一些问题,里面也许就有你平时没有注重到的问题,希望能帮助各位读者理解好指针。 !-- frame contents -- !-- /frame contents -- ...
作者: 网易 学院 程序系教授管宁 以下两个例子要非常注意,函数传递的不是数组中数组元素的真实值而是数组在内存中的实际地址! /*程序作者:管宁 站点:www.cndev-lab.com 所有稿件均有版权,如要转载,请务必著名出处和作者*/ #include stdio.h void main(void) { void reversal(); static int a[10] = {0,1,2,3,4,5,6,7,8,9};...

经验教程

802

收藏

87
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部