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)

猜你喜欢

转载自blog.csdn.net/weixin_43705953/article/details/114970572