当前位置: 首页 > news >正文

指针与一维数组

        对于数组元素的访问,可以使用下标,也可以使用指针变量,移动指针可以指向数组中的任意一个元素。

        例如,一维数组和指针的如下定义

int a [5] = {1,2,3,4,5},*p;p = a;

因为p是指向一维数组的首元素的指针。因此上述关系等价于

int a [5] = {1,2,3,4,5},*p;p = &a[0];

我们可以利用运算符+,*,[]建立指针与一维数组的关系,如下

注意p[i]表达式中p不是数组名,是指针,这是指针的下标表示法

下面介绍四种访问数组元素的四种等价方式

#include<stdio.h>
int main()
int i,a[5]= {1,2,3,4,5},*p=&a[0];
printf("\na[i] :");
for(i=0;i<5;i++)
printf(" %3d" ,a[i]);   /*常规下标法访问数组元素*/
printf("\n*(a十i):");
for(i=0;i<5;i十+)/*数组名作为指针访问数组元素*/
printf("%3d",*(a+i));
printf("\npLi]n);
for(i=0;i<5;i++)/*指针变量下标法访问数组元素*/
printf(" %3d" ,p[i]);
printf("\n*(p+i):");
for(i=0;i<5;i十十)/*使用指针变量访问数组元素*/
printf("%3d", *(p+i));
return O;

a和p是有差别的,数组名a是一个指针常量,不可赋值,不能进行“a++”操作;p是一个指针变量,可赋值,可以进行“p++”操作。如下

#include<stdio.h>
int main()
{int a[5]={1,2,3,4,5},*p-a;
printf("\n *p十十:");
for( ;p<a+5;)
/*此处,*p十十不能用*a十十替换*/
printf("%3d",*p++);
return 0;
}


http://www.mrgr.cn/news/22005.html

相关文章:

  • C++音视频开发笔记目录
  • 【系统架构设计师】隐式调用(事件驱动)架构
  • 从量化交易角度看,股市能做行业长期趋势的标志吗
  • 录屏新秀Top3 VS班迪录屏 ,谁更胜一筹?
  • C++——stack、queue的实现及deque的介绍
  • 【数据结构】堆——堆排序与海量TopK问题
  • 跨平台电商数据整合:item_get API在电商大数据平台中的角色
  • 魔术方法介绍
  • js window.addEventListener 是什么?
  • MVVM 基础
  • 【Qt】定时器事件
  • 【C++】std::list
  • 微信小程序授权登录流程以及使用到的API
  • 如何快速练习键盘盲打
  • 【Rocketmq入门-基本概念】
  • 【web网页制作】html+css旅游家乡河南主题网页制作(5页面)【附源码】
  • C语言小游戏--贪吃蛇实现
  • (南京观海微电子)——GH7006 Application Note
  • C++学习笔记----6、内存管理(四)---- 通常的内存陷阱(2)
  • python内置模块datetime.time类详细介绍