黑马程序员技术交流社区

标题: C语言的行指针与元素指针有什么区别? [打印本页]

作者: Ak47_1    时间: 2015-5-5 11:13
标题: C语言的行指针与元素指针有什么区别?
先举个例子吧,先定义一个二维数组int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}
      数组名a就是一个行指针,a[0]就是一个列指针;
    就拿这个例子说吧,a和a[0]虽然地址相同,可是指针指向类型却不同,对指针进行+1运算,显然得到的结果是不同的,因此a(行指针)+1中的"1”代表一行中全部元素所占的字节数,而a[0]+1,这里的1则是一个元素所占的字节数,是两个不同的概念。
为了说明这个容易搞混的问题,可以用军训中排队点名来说明。班长逐个检查本班战士是否在队列中,班长每移动一步,走过一个战士,而排长点名只检查本排各各班是否到齐。排长只从第0班的起始位置走到第1个班的起始位置,看来只走了一步,但实际上他跳过了10个战士,这相当于a+1,班长面对的战士,排长面对的是班,班长相当对列指针,排长相当于行指针。
为了找到某个班内的某一个战士,必须给出两个参数
作者: greatboygirl    时间: 2015-5-5 12:21
赞!!1没想过那么多,但是有种豁然开朗的感觉
作者: 变味的面包    时间: 2015-5-5 16:52
够深刻!!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2