*数组总结*

一.一维数组
1.数组的创建及初始化
(1)数组创建时,[]中要给一个常量,不能用变量
    例:int main()
        {
             int a[10];
             char b[4];
             double d[6];
         }
(2)数组在创建时时未指定数组的确定大小时,就得初始化。此时数组的元素个数根据初始化的内容来确定
             
    例:char a[] = {'a','b','c'}
2.一维数组的使用
(1)数组下标从0开始;
(2)数组的大小可通过计算得到:
    例: int a[10];
        int sz = sizeof(a)/sizeof(a[0]);
3.一维数组在内存中的存储
  一维数组在内存中是连续存放的
4.一维数组的指针访问
    例:  int main()
        {
             int a[10] ={0};
             int *p = a;
             int i = 0;
             for(i=0; i<10; i++)
             {
                  *(p+i) = i;
                  printf("&a[%d] = %p ======= p+%d = %p\n",i,&a[i],i,p+i);
             }"======="左右输出地址一样
     其中,程序中的*(p+i) = i等价于*(i+a) = i;a[i] = i;p[i] = i;可替换。
     此时,数组名是数组首元素的地址。。
二.二维数组
1.数组的创建及初始化
    例(创建):int main()
              {
                  int a[3][4];
                  char b[4][5];
                  double d[2][4];
               }
    例(初始化):int main()
              {
                 int a[3][4] = {1,2,3,4};
                 char b[4][5] = {{1,2},{4,5}};
                 double d[][4] = {{2,3},{4,5}};
              }
2.二维数组的使用
(1)二维数组的使用也通过下标的方式
(2)数组下标从0开始;
(3)数组的大小可通过计算得到:
      例: int a[10];
          int sz = sizeof(a)/sizeof(a[0]);
3.二维数组在内存中(的存储)是连续存放的
三.数组名代表数组的两种情况:
(1)sizeof(数组名),这里的数组名表示整个数组
(2)&数组名,这里的数组名表示整个数组
四.数组作为函数参数
例:(冒泡法实现从小到大排序)
	#define _CRT_SECURE_NO_WARNINGS 1
	#include <Windows.h>
	#include <stdlib.h>
	#include <stdio.h>  
	void bubble_sort(int a[],int sz)
    	{
 		int i = 0;
 		int j = 0;
 		int temp = 0;
 		for(i=0; i<sz-1; i++)
 		{
  			for(j=0; j<sz-1-i; j++)
  			{
   				if(a[j] > a[j+1])
   				{
    					temp = a[j];
    					a[j] = a[j+1];
   					a[j+1] = temp;
   				}
  			}
 		}
    	}
	void print(int a[],int sz)
	{
 		int i = 0;
 		for(i=0; i<sz; i++)
 		{
  			printf("%d ",a[i]);
 		}
 		printf("\n");
    	}
   	int main()
    	{
 		int sz = 0;
		int a[8] = {3,5,12,15,1,4,10,17};
 		sz = sizeof(a)/sizeof(a[0]);
 		bubble_sort(a,sz);
 		print(a,sz);
 		system("pause");
 		return 0;
   	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值