C语言中的数组

数组是c语言中的一种复合数据类型,是相同数据类型的有序集合

#include"stdio.h"
#include"string.h"
#include"stdlib.h"
int main()
{
    int a=10;
    int Array[10]={1,2,3,4,5,6,7,8,9,10};//定义一个可以存放十个int型数据的数组
    int *pArr=NULL;
    pArr=Array;
    //Array=&a;
    printf("%d\n",Array);
    printf("%d\n",Array+1);
    printf("pArr[5]:%d\n",pArr[5]);
    printf("*(pArr+5):%d\n",*(pArr+5));
    pArr=Array+3;
    printf("pArr:%d\n",*pArr);
    printf("pArr[-1]:%d\n",pArr[-1]);
    return 0;
}

运行结果
这里写图片描述
通过以上代码可以知道

  • 数组名是一个指针,而且是常量指针,不可改变指向
  • 数组名指向数组的第一个元素并不指向整个数组,因为步长不是整个数组的长度
  • 可以使用指针访问数组元素和使用数组下标访问数组元素一样
  • [ ]中的数字代表偏移量

数组与指针的区别

  1. 数组并不是指针。
  2. 指针保存的是数据的地址,数组保存数据本身,指针间接访问数据,首先取得指针的内容,把他做为地址,从这个地址提取数据;数组直接访问数据
  3. 数组做为函数参数时会退化为指针。

多维数组

int main()
{
    char marray[3][10]={"abc","bfrtg","lfjllif"};
    //char *p=marray;
    char (*p)[10];
    p=marray;//指向数组的指针
    printf("marray[0]:%s\n",marray[0]);
    printf("marray[1]:%s\n",marray[1]);
    printf("marray[1][2]:%c\n",marray[1][2]);
    printf("*(*(marray+1)+2):%c\n",*(*(marray+1)+2));
    printf("p:%s\n",*p);
    printf("p:%s\n",*(++p));
}

这里写图片描述

  • 多维数组其实是一个数组的数组,数组名也是一个常量指针,指向他的第一个数组元素,是一个数组指针,可以通过指针访问数组元素,* (*(marray+i)+j)与marray[i][j]是一样的。 char (*p)[10]声明数组指针。
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值