波奇学c:最基本的数据结构:数组

目录

数组

特殊的字符数组

全局数组不初始化默认为0,局部数组不初始化随机值。

如何求字符长度?

字符型数组

整型数组

*sizeof

二维数组

数组的访问:数组名的含义和下标的使用

数组名(arr)表示首元素地址。

二维数组的arr一般表示第一个一维数组的整个数组地址,类型是int (*)[2]。

下标

访问一维数组第n个元素

访问二维数组第n+1行m+1列元素


数组

在内存中开辟地址连续的若干个空间,存放同类型的变量。用数组下标可以访问数组元素。

数组下标增长,地址是由低变高,已知首地址可以求他的地址。

下标范围:0~数组元素-1

数组结构:元素类型 数组名[元素数量]={数组元素,...};

int arr[10]={1,2,3};//不完全初始化,剩余的为0
int arr[3]={1,2,,3};//完全初始化
int arr[]={1,2,3};//数组元素数量可省略
int arr[3]={0};//所有元素都为0


特殊的字符数组

char arr[]="ab"//有三个字符'a','b','\0'
char brr[]={'a','b'}//只有两个字符,用strlen求字符长度时会出现乱码

全局数组不初始化默认为0,局部数组不初始化随机值。

int arr[10];//元素值默认为0
 int main()
{
    int brr[10];//随机值
    return 0;
}

如何求字符长度?

字符型数组

int sz=strlen(arr);
int sz=sizeof(arr)/sizeof(arr[0])-1;

整型数组

int len=sizeof(arr)/sizeof(arr[0])

*sizeof

sizeof是操作符,求空间大小(单位字节)

数组空间大小=单个元素大小*数组长度(数组个数)。

二维数组

 二维数组在内存中也是连续开辟空间的,和一维数组类似,可以看成数个地址连续的一维数组拼在一起。

二维数组的元素是一维一整个数组。

int arr[3][2]={{1,2},{3}};
1,2
3,0
0,0

*3表示行,2表示列,行可以省略,列不能省略

用{}表示一行数组内容。

数组的访问:数组名的含义和下标的使用

数组名(arr)表示首元素地址。

除了sizeof(arr)和&arr表示整个数组,其余情况都表示数组首元素地址,包括传参时。

二维数组的arr一般表示第一个一维数组的整个数组地址,类型是int (*)[2]。

下标

访问一维数组第n个元素

arr[n-1]
*(arr+n-1)

两种方式等价,由此可以发现中括号和解引用符号相同。

访问二维数组第n+1行m+1列元素

arr[n][m]
*(arr[n]+m)
*(*(arr+n)+m)

*arr等价于arr[0]。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值