C语言数组学习笔记

数组是什么 ?

数组是一种容器, 数组中的元素在内存中连续依次排列的, 其中所有元素具有相同的数据类型。 一旦被创建, 不能改变大小。 数组的每个单元就是数组类型的一个变量。

数组的声明

数组本身不能被赋值,赋值的是数组的元素。

// 变量名称加中括号 
int number[10] ; 
// 集成初始化 
int number[] = {[1]=2,[2]=4} 
int number[] ={1,2,3,4}
int number[] ={[1] = 1,2,  [5]=5}

数组的下标

数组的下标用中括号,如 a[1] , 从0开始。 有效的值 0到数组大小-1
编译器和运行环境不会检查数据下标是否越界 , 无论是对数组单元做读还是写。 一旦程序运行, 数组越界访问可能造成问题, 导致程序崩溃。 所以C程序员有责任来保证程序使用有效的下标。

数组的长度

sizeof(x)可返回x的字节, sizeof(array)为数组所占字节, sizeof(array[0])为数组第一个元素所在字节。 由于数组每个元素类型相同,同一个类型所占字节相同, 那么数组长度即可使用
sizeof(array)/sizeof(array[0])来计算。

int a[]= {1,3,4} ;
printf("\d", sizeof(a)); 
printf("\d", sizeof(a[0]));
prinft("\d",sizeif(a)/sizeof(a[0]) );
>12
>4
>3

遍历数组

一般都是使用for,让循环变量从 i 到<数组长度, 这样循环达到最大正好是数组最大的有效下标。

for( i=0; i<length; i++}{} 

常见的错误就是循环结束条件是 <=数组长度 。

二维数组

二维数组可以理解为一个矩阵 , 其声明,赋值,遍历 只是把一维数组拓展到两个中括号。

int number[3][5]int number[][2] ={ 
	{1,2,3},
	{2,4} 
	}

需要注意的是:

列数是必须给出的, 行数可以由编译器来计算
每行一个单独的{ } ,逗号间隔。
根据古老的传统, 最后一个逗号也可以存在。
省略表示补零
也可以使用定位

推广的n维数组也是一样(n>2)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值