数组(c语言版)

常量数组和变长数组

一般情况下,在创建数组时,数组的大小是常量,当设为变量时,会出现报错。这是因为使用的编译器不支持C99的变长数组,常见的编译器如Visual Studio就不支持变长数组,但如果使用linux操作系统,它支持C99,也就是可以使用变长数组。(变长数组不能进行初始化,如果想使用变长数组,可以在虚拟机下载linux操作系统)

初始化常量数组

int a[10]={0,1,2,3,4,5,6,7,8,9};//完全初始化
int b[10]={2,3};//不完全初始化

一维数组的使用

创建一维数组

int arr[100]={1,2,3,4,5,6};//创建一维数组,如arr[0]=1,arr[1]=2
printf("%d\n",arr[4]);//[]下标引用操作符,arr,4时[]的两个操作数
int s=sizeof(arr);//数组的总长度,sizeof是用来计算长度的
int sz=sizeof(arr)/sizeof(arr[0]);//计算数组元素个数的写法
打印一维数组的值
for(int i=0;i<sz;i++)
{
printf("&arr[%d]=%p\n",i,&arr[i]);
}

%p - 打印地址(16进制)

%d - 打印整数(10进制)

各种含义
int *p=&arr[0];//将arr[0]的地址赋给p
&arr[i]==p+i;//&arr[i]等同于p+i,都是指指针存放的地址(指针存放的地址是连续的)

二维数组

创建二维数组

int arr[][5]=={1,2,3,4,5,6};//不完全初始化
int arr[3][5]=={1,2,3,4,5,6};//不完全初始化
int arr[3][5]={{1,2},{4,5},{5,6}};//把1、2放第一行,4、5放第二行,5、6放第三行
char ch[3][7];
int arr[4][5]={0};//初始化了第一个数组为0,其余数组初始化默认为0

二维数组创建时,行数可以忽略不写。并且所有维度的数组其第一个方括号的内容可忽略。

数组越界

数组的下标是有范围限制的,数组的下规定是从0开始,如果数组有n个元素,最后一个元素的下标就是n-1。所以,如果下标小于0或大于n-1,就是数组越界访问了。一般编译器不会对此报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值