一维数组与指针_第1页
一维数组与指针_第2页
一维数组与指针_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一维数组与指针1关于数组元素地址的说明:一维数组在内存储单元中是连续存放的。数组名a代表数组的首地址即a0的地址,&a0,是一个地址常量,是数组存储单元最开 头第一个字节的地址。既然是一个地址值就可以给指针变量Int a5,*pa=a;(数组名即数组首地址赋给指针变量,指针变量指向数组首个元素)Int a5,*pa=&a0;(遇上面等价)。Int a5,*pa=&a3;2数组元素的引用(1)引用各个数组元素的地址值:通过使用数组名定义一个数组 a5贝a 代表&a0a+1,a+2,a+3,a+4 依次代表&a1,&a2,&a3,&a4。这里要注意,a的值为地址值,且a为一个地址常量,是一个常量,

2、不能用来赋值,自加自减 等。a+n的计算规则是地址值的计算规则,即当前地址值(可以用十进制表示)加上n乘以 数组元素的数据类型所占的字节数,代表数组元素an。可以通过循环语句和scanf语句来将输入的数存放到一位数组中,即Int a5;F0r(i=0;i5;i+)Scang(“d”,a+i);通过指针如 int a5,*pa=a;等价于 int a5,*pa=&a0;Int a5,*pa;For(pa=a,i=0;i5;i+)Scanf(“d”,pa+);或者For(pa=a,i=0;i5;i+)Scanf(d”,pa);pa+;或者For(pa=a;pa-a5;pa+)Scanf(“d”,p

3、a);(2)引用各个数组元素所在的存储单元或存储单元里面的值通过对数组名取内容运算符*即*(a+i)。即a0可以用*(a+0)或者*a来引用,a1可以用*(a+1)来引用,一次类推。可以逐个输出数组元素的值For(i=0;i4;i+)Printf(“d”,*(a+i);通过对指针变量取内容运算* (p+i)通过数组名后面跟下标即ai通过指针变量后面跟下标pai,这里有个前提即pa使数组名a的地址及pa=a;3总结:(1)引用数组元素的方式有:*(a+i) *(p+i) ai pi(前提是p=a)(2)引用数组各个元素地址的方式有:a+i ,p+i ,&ai , &pi(前提是p=a)(3)注意

4、a与p的区别,a是不可变的,而p中的地址是可以改变的,所以a+,a+=3,a=p,p=&a, 都是非法的。但对于p是合法的。4数组作为函数的参数见下面的一张表:实参形参数组名数组名指向数组的指针变量数组名指向数组的指针变量指向数组的指针变量(即指针变量存放的地址为数组首地址)地址表达式数组名指向数组的指针变量说明:数组名代表数组的首地址,将数组名作为实参传递给形参,形参数组依此为首地址, 这样形参数组与实参数组就公用一段存储区,因此形参数组元素的变化必然引起实参数组元 素的同时变化,并达到可以返回多个值的目的。当然如果用一个指针变量指向数组的首地 址作为实参与上面是在含义上等价的。在函数体中,另作定义的数组只在调用函数时,系统为他开辟

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论