4 - 数组

数组概念

数组是相同类型的变量的有序集合,是一片连续的内存空间。

 

数组初始化

int main()
{
	int i = 0;
	int a[10] = {1,2};   //其他初始化为0
	int b[] = {1, 2};    //默认为[20],并不是无限大,所以需要注意不要超过了
	int c[20] = {0};
 
	for (i=0; i<10; i++)
	{
		printf("%d ", a[i]);
	}
	memset(a, 0, sizeof(a));
	getchar();
	return 0;	
}

 

数组名技术盲点

数组首元素地址和数组地址是两个不同的概念,数组名代表数组首元素地址,它是一个常量。

变量的本质是内存空间的别名,一被定义成数组,就会分配内存,内存就是固定的了,所以数组名起名之后就不能被修改了。

数组首元素的地址和数组的地址值相等。

 

数组类型、数组指针类型、数组指针类型变量

数组类型

数据类型分为基础数据类型,非基础数据类型。

在C语言当中,数组有自己的特定类型。数组的类型由元素类型和数组的大小共同决定。

int main()
{
    typedef int(MYINT5)[5];
    int i = 0;
    MYINT5 array;
    for (i=0; i<5; i++)
    {
        array[i] = i;
    }
     
    for (i=0; i<5; i++)
    {
        printf("%d ", array[i]);
    }
 
    getchar();
    return 0;	
}

数组指针类型

数组指针用于指向一个数组。数组名是数组首元素的起始地址,但并不是数组的起始地址。通过取地址符作用于数组名可以得到整个数组的起始地址。

// 1) 通过数组类型定义数组指针
typedef int(ArrayType)[5];  
int *a
ArrayType* pointer;

// 2) 声明一个数组指针类型
typedef int (*MyPointer)[5];
MyPointer myPoint;


// 3) 直接定义
// pointer  数组指针变量名
// type     指向的数组类型
// n        指向的数组大小
type (*pointer)[n];    

 

指针数组的应用场景

菜单的查找,系统函数调用指针表,用于调用系统函数。,操作系统拉起应用,

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值