指针引用数组

C语言规定:如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。

引入指针变量后,就可以用两种方法来访问数组元素了。如果p的初值为&a[0],则:

p+i和a+i就是a[i]的地址,或者说它们指向a数组的第i个元素。

*(p+i)或*(a+i)就是p+i或a+i所指向的数组元素,即a[i]。例如,*(p+5)或*(a+5)就是a[5]。

指向数组的指针变量也可以带下标,如p[i]与*(p+i)等价。

根据以上叙述,引用一个数组元素可以用:

下标法:即用a[i]形式访问数组元素。在前面介绍数组时都是采用这种方法。

指针法:即采用*(a+i)或*(p+i)形式,用间接访问的方法来访问数组元素,其中a是数组名,p是指向数组的指针变量,其处值p=a。

【例】输出数组中的全部元素(下标法)。

main(){

int a[10],i;

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

a[i]=i;

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

printf("a[%d]=%d\n",i,a[i]);

}

【例】输出数组中的全部元素(用指针变量指向元素)。

main(){

int a[10],i,*p;

p=a;

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

*(p+i)=i;

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

printf("a[%d]=%d\n",i,*(p+i));

}

c语言中通过指针引用数组,C语言基础(二)相关推荐

  1. c语言中数组的概念及作用,详解C语言中的指针与数组的定义与使用

    指针的特点 他就是内存中的一个地址 指针本身运算 指针所指向的内容是可以操作的 操作系统是如何管理内存的 栈空间 4M~8m的大小 当进入函数的时候会进行压栈数据 堆空间 4g的大小 1g是操作系统 ...

  2. IOS笔记-C语言中的指针与数组

    1.指针与数组 1)指针与一维数组 i.数组指针(指向数组元素的指针) 类型  *指针变量名: 指针定义完成后要初始化(不想让指向任何内容,=0,=NULL) int a[10]; int *p =  ...

  3. c语言中字符指针变量输入,C语言指针基础知识实例讲解

    对程序进行编译的时候,系统会把变量分配在内存单位中,根据不同的变量类型,分配不同的字节大小.比如int整型变量分配4个字节,char字符型变量分配1个字节等等.被分配在内存的变量,可以通过地址去找到, ...

  4. c语言中只能逐个引用6,C语言前面六个练习.doc

    C语言前面六个练习 第一章 C语言基础知识 4.一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数 2.一个函数由两部分组成,它们是 函数体 和 函数的说明部分. 3.函数体的范围是 大括号 ...

  5. 在c语言中怎么返回引用参数,C语言函数 函数的声明 C语言的头文件 #include的用法 形参和实参 函数的返回值 - 猫扑天空...

    C语言函数 一.是什么? 是指编程中对一块功能代码的封装,可以理解一个程序片段 二.有什么用? 可以封装代码,方便调用,提高复用性 三.怎么用? 定义:  返回值类型  函数名(形参类型 参数名1-. ...

  6. c语言中自定义函数返回数组,C语言自定义函数返回数组的方法(图文详解)

    C语言自定义函数返回数组的方法(图文详解) 最近看到一些同学问题,有提到说:如何在一个函数中返回数组呢? 能否直接在自定义 函数中,写成char *类型返回值,直接返回呢?,代码如下: 直接返回str ...

  7. C语言指针基础知识点(四)--通过指针引用数组

    指针系列目录   C语言指针基础知识点(一)–指针及指针变量   C语言指针基础知识点(二)–指针变量的引用   C语言指针基础知识点(三)–指针变量作为函数参数   C语言指针基础知识点(四)–通过 ...

  8. 【软件开发底层知识修炼】二十七 C/C++中的指针与数组是不同的

    上几篇文章学习了ABI-应用程序二进制接口:[软件开发底层知识修炼]二十六 ABI-应用程序二进制接口 学习总结文章目录 本篇文章就指针与数组的联系与区别来学习学习 文章目录 1 疑问 2 指针与数组 ...

  9. c语言的结构体指针的引用,C语言中的指针、引用、数组、结构体

    指针.引用和取值 什么是指针?什么是内存地址?什么叫做指针的取值?指针是一个存储计算机内存地址的变量.在这份教程里"引用"表示计算机内存地址.从指针指向的内存读取数据称作指针的取值 ...

最新文章

  1. html dvi如何设置置顶不能空白位置,[html]关于html标签的一些总结
  2. php 取url根域名,php中取得URL的根域名的代码
  3. Python中的字符串与字符编码:编码和转换问题
  4. spring的三种启动方式
  5. pads layout PCB整体旋转,不改变布局并保留连线
  6. 本人正式入驻博客园~
  7. java学习中,二分法查找数组中的元素(java 学习中的小记录)
  8. 项目管理流程图模板分享
  9. 手机看html 图片,手机HTML怎么看
  10. 附加:tkmybatis简介;(Mybatis-Plus和tkmybatis对比)
  11. 计算机软件系统验证报告,检验报告管理系统软件
  12. 服务机器人分类包括哪些?
  13. 对SMART法则的多种解释
  14. github的crx快速下载
  15. 宽带常见的有20 30 50 100兆指的是什么意思???
  16. Java项目对接天眼查
  17. python在图片上绘制标注框
  18. 2014春节流水帐及杂想
  19. Android 相机方向传感,Nexus 5x反向横向传感器修复在Android相机预览...
  20. Docker镜像文件存放

热门文章

  1. 一个用于学习的react项目
  2. 树莓派:文本编辑器与文件
  3. Unity3D-RPG项目实战(1):发动机的特殊文件夹
  4. GenePix Pro 3.0
  5. android自动画线,Android画布画线 - 使线条变粗
  6. OpenJudge NOI 1.7 32:行程长度编码
  7. 信息学奥赛一本通(1230:寻找平面上的极大点)
  8. 信息学奥赛一本通(1312:【例3.4】昆虫繁殖)
  9. 信息学奥赛一本通(1411:区间内的真素数)
  10. 信息学奥赛一本通(2038:【例5.5】最大数位置)