C/C++ 数组学习

一维数组

数组,它可以存储一个固定大小的相同类型元素的顺序集合。
数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。

声明一个数组变量,比如 num,然后使用 num[0]、num[1]、…、num[N] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。

所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。

声明数组

在 C 中要声明一个数组,需要指定元素的类型和元素的数量,写法如下所示:
type arrayName [ arraySize ];

这叫做一维数组。arraySize 必须是一个大于零的整数常量,type 可以是任意有效的 C 数据类型,例如:int,char,double等。
简单举例如下:
int arry[5]; //表示int类型数据,数组大小为5

初始化数组

数组的初始化:在数组创建时,我们尽量为数组初始化
把数组定义为全局数据(定义在主函数之外),那么编译器会帮你把数组初始化位0,但是如果不是全局数据,那么数组数组元素的值就是不确定的了

  1. 使用一个初始化语句,
  2. 省略掉了数组的大小,数组的大小则为初始化时元素的个数
    eg:
int arr1[3] = {1, 2, 3};  //满初始化
int arr2[] = {1, 2, 3}; //省略数组大小,由元素个数决定;
int arr3[3] = {1, 2}; //缺少的默认为0
int arr4[3] = {1, 2, 3, 4}; //错误,不能超过数组长度  
char arr5[3] = {'a', 98, 'c'};//因为是字符类型,所以98其实就是字符'b'
char arr6[] = "abcdef";   //直接用双引号写字符串

访问数组元素

数组元素可以通过数组名称加索引进行访问。元素的索引是放在方括号内,跟在数组名称的后边。
数组是使用下标来访问的,下标是从0开始。
数组的大小可以通过计算得到。(size = sizeof(arr)/sizeof(arr[0]));

#include "stdafx.h"

//数组:数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
//所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素
//不同数据类型,数量多,可以使用结构体struct
//定义,大小,初始化,访问

int main()
{
	//int变量先定义后初始化
	int a;
	a = 10;
	//变量a的大小就是int的大小
	printf("sizeof(a) = %d\n", sizeof(a));
	printf("sizeof(int) = %d\n", sizeof(int));
	

	int arr[10]={0};  //a[0]--a[9]  
	printf("sizeof(arr) = %d\n", sizeof(arr)); //sizeof(arr)等于求解int*10大小

	//构造多类型结构体
	struct
	{
		int a1;
		long b;
		char c;
		double d;
	}Var;

	for(int i=0;i<10;i++)
	{
		arr[i] = a++;
		//循环打印每个地址的数据,以及相应的地址
		printf("arr[%d]=%d,addr:%p\n", i, arr[i],&arr[i]);
	}

	getchar();
    return 0;
}

运行结果

数组三要素

数组的声明中,己经把数组访问的三要素,均己表示出来了,三要素就是,起始
位置,移步刻度,终止位置(范围)。
基于起始位置偏移 0 个单位处,开始存放数据,故下标从 0 处开始。
变长数组是指用整型变量或表达式声明或定义的数组,而不是说数组的长度会随时
变化,变长数组在其生存期内的长度同样是固定的。
注意:变长数组有平台差异性,以 linux 平台为准。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值