数组内容详解

1.1 数组的创建

数组的创建方式

元素类型 arr_name 常量表达式(用于指定数组的大小)

例如:

int arr1 [10];

char arr3 [10];

float arr4 [1];

1.2 数组的初始化

完全初始化:

int arr1 [10]={1,2,3,4,5,6,7,8,9,10};

不完全初始化:

int arr2 [10]={1,2,3,4,5};

如果数组初始化了,可以不指定数组的大小,数组大小可以根据初始化内容确定。

char ch3 [ ]="abc";

这里数组的大小是4

abc还有\0

char ch4 [ ]={‘a' 'b' ' c' };

这里数组的大小是3 即abc

printf("%s\n",ch4);

打印的时候并不是abc 因为遇到\0才停下 但是什么时候停下来是未知的,因为不知道什么时候是\0

而printf("%s\n",ch3);

打印的结果就是abc 因为\0就在abc的后面

1.3 数组的使用

int a = 10;

printf("%d\n",size of(a));

结果是4

printf("%d\n",size of(int));

结果也是4

说明了求变量a和求相对应的类型 结果是一样的

那么作用在数组上也是一样的

int arr[10]={1,2,3,4,5,6,7,8,9,10};

printf("%d\n",size of(arr));

printf("%d\n",size of(int [10]));

打印结果都是40

最后总结数组的两个方面

  1. 数组是使用下标来访问的,下标是从0开始的

  1. 数组的大小可以通过计算得到 int sz = size of(arr)/ size of(arr[0]);

1.4数组在内存中的储存

数组在内存中是连续存放的

随着下标的增长,地址是由低到高变化的

int *p=&arr[0];

p+i 和&arr[i]地址是一样的

printf("%d",*(p+i)); 解应用找到里面的地址

2.二维数组的创建和初始化

1.二维数组的创建

int arr[3][4]

char arr[3][4]

double arr[2][4]

2.二维数组的初始化

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

[1] [2] [0] [0]

[0] [0] [0] [0]

[0] [0] [0] [0]

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

[1] [2] [0] [0]

[3] [4] [0] [0]

[0] [0] [0] [0]

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

[1] [2] [3] [4]

二维数组的行可以省略但是列不可以省略

3.二维数组的使用

二维数组的使用也是使用下标的方式

4.二维数组在内存中的储存

二维数组在内存中也是连续存储的

3.数组越界

数组的下标是有范围限制的,数组规定下标是从0开始的,如果数组有n个元素,最后一个元素的下标就是n-1,所以数组的下标小于0或者大于n-1,就是数组越界访问了。

4.数组作为函数参数

数组名是什么?

所有的数组名都表示数组首元素地址.

但是有两个例外

  1. sizeof(数组名)表示的是整个数组

  1. &数组名 ,数组名表示整个数组

5.冒泡排序函数

谢谢观看!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值