C语言数组的基本知识

 

#include <stdio.h>
int main()
{
    int a[5]={1,2,3,4,5} ;
    //a是数组的名字,里面的数字是元素个数,并且里面的元素分别用a[0],a[1],a[2],a[3],a[4]称呼
    int i; 
    for (i=0;i<5;++i)
        printf("%d\n",a[i]);
        return 0; 
 } 

1.为什么需要数组?

    为了解决大量同类型数据的存储和使用,以及模拟现实世界。

2.数组分类

    1>.一维数组

       怎样定义一维数组:需为N个变量连续分配存储空间,所有变量数据类型必须相同,所有变量所占字节大小必须相等。

       有关一维数组的操作:初始化,赋值,排序,求最大最小值,倒置,查找

       完全初始化:

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

       未完全初始化:

       int a[5]={1,2,3}未被初始化的值自动为零

       不初始化

       int a[5];里面的所有元素都是垃圾值。

       清零:

       int [5]={0};

       错误写法:

       int a[5];

       a[5]={1,2,3,4,5}//只有在定义数组的时候才可以整体赋值,其他情况下整体赋值全错。    因为没有a[5]=100也不行因为没有a[5]这个元素。一维数组名不能代表这个数组。

       赋值:int a[5]={1,2,3,4,5}

                 int b[5];

                 把a的值赋给b,错误写法:b=a;

                                           正确写法:for(i=0;i<5;++i)

                                                      b[i]=a[i];

      数组倒置代码

#include <stdio.h>
int main()
{
	int a[8]={1,2,3,4,5,6,7,8};
	int i,j;
	int t;
	
	i=0;
	j=7;
	
	while(i<j)
	{
		t=a[i];
		a[i]=a[j];
		a[j]=t;
		
		i++;
		--j;
	}
	
	for(i=0;i<8;i++)
		printf("%d\n",a[i]);
		
	return 0;
}

  2.>二位数组

        int a[3][4];总共是12个元素,前行后列,可以理解成平面坐标,都从0开始数,即                              a[0][0]   a[0][1]  a[0][2]  a[0][3]

            a[1][0]   a[1][1] ……

            ……

            int a[m][n]该二维数组右下角位置的元素只能是a[m-1][n-1]

         初始化

            int a[3][4]={//里面放十二个值}

           或者 int a[3][4]={

                                      {1,2,3,4},

                                      {5,6,7,8},

                                      {9,10,11,12}

                                       };

          输出二维数组内容:

#include <stdio.h>
int main() {
	int a[3][4]= {

		{1,2,3,4},

		{5,6,7,8},

		{9,10,11,12}

	};
	
	for(int i=0;i<3;i++)
	{
	
		for(int j=0;j<4;j++)
			printf("%-5d",a[i][j]);//-5d里面,-是左对齐,5是中间间隔位置 
		
			printf("\n");
	}
	return 0;
}

   多维数组:

          是否存在多维数组:不存在。因为内存是线性一维的,n维数组可以当作每个元素是N-1维数组的一维数组。

          可以参考矩阵的分块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值