C语言一维数组

本文深入解析C语言中一维数组的定义、初始化及应用。详细介绍了一维数组的定义方式,包括数组类型、标识符及长度设定。阐述了数组元素的使用方法,并通过实例演示了如何使用for循环进行数组元素的输入与输出。此外,文章还讲解了一维数组的三种初始化方法,分别是定义时直接赋值、部分元素赋值和省略数组长度的初始化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1一维数组的定义和应用

1.一维数组的定义

一维数组用以储存一位数列中数据的集合。其一般形式如下:
类型说明符 数组说明符 [常量表达式]
类型说明符表示数组中所用元素的类型
*数组标识符**表示该数组中变量的名称,命名规则与变量名一致
常量表达式定义了数组中存放的数据元素的个数,既数组长度。
例如:定义一个数组

int a[10];
a:数组名
[10]:下标,表示这个数组中有30个元素。下标必须是大于0的整数,可以是常量表达式,符号常量,变量。

2.一维数组的应用

数组定义完成后,就要使用该数组。可以通过应用数组元素的方式使用该数组中的元素。
数组元素的一般表示形式如下:
 数组标识符 [下标]
例如:int a[10];   //定义了有10个数组元素的数组a
           a[2];       //应用数组a中下标为2的元素。
注:数组中下标不能越界

int a[10];
a[10]=10; //a[10]中的10位0~9,10属于下标越界

实例:8.1 使用数组保存数据

#include "stdio.h"
main()
{
	int a[5],b;
	printf("Please enter a Array:\n");
	for(b=0;b<5;b++)   //使用for循环依次输入数到数组
	{
		scanf("%d",&a[b]);
	}
	printf("The Array is:\n");
	for(b=0;b<5;b++)  //使用for循环依次输出数组
	{
		printf("%d",a[b]);
	}
}
/*
注意,for循环b初值一定是0,而不是1,因为数组的元素个数为0~n。
*/

1.2一维数组的初始化

对一维数组的初始化,可以使用以下三种方法实现。
(1)在定义数组时直接对数组元素赋初值

int a[3]={0,1,2};

这种方法是将数组中的元素值一次放在一对花括号中。经过上面的定义和初始化后,数组中的元素a[0]=0.a[1]=1,a[2]=2。

例*8.2 初始化一维数组

#include "stdio.h"
main()
{
	int a;
	int n=20;
	int b[5]={5,15,6,n,65};//数组赋值可以是变量
	for(a=0;a<5;a++)
	{
		printf("%d ",b[a]);
	}
}

(2)只给一部分元素赋值,未赋值的部分元素值为0.

int a[5]={5,8};

数组变量a包含5个元素,不过在初始化的时候只给出了3个值,于是数组中前3个元素的值对应括号中给出的值,在数组中没有得到值得元素被默认赋值为0
例 8.3赋值数组中的部分元素

#include "stdio.h"
main()
{
	int a;
	int b[5]={5,15};//数组赋值可以是变量
	for(a=0;a<5;a++)
	{
		printf("%d ",b[a]);
	}
}

(3)在对全部数组元素赋初值时可以不指定数组长度
之前在定义数组时,都在数组变量后指定了数组的元素个数。C语言还允许在定义数组时不必指定长度,例如:

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

上述代码中大括号中有4个元素,系统就会根据给定的初始化元素值得个数来定义数组的长度。因此该数组变量的长度为4.
例8.3 不指定数组元素的个数

#incldue "stdio.h"
main()
{
	int a;
	int b[]={1,2,3,4,5};
	for(a=0;a<5;a++)
	{
		printf("%d ",b[a]);
	}
}
### C语言一维数组和二维数组简介 #### 1. **一维数组** 一维数组是最简单的数组形式,它是一组相同类型的元素的有序集合。每个元素可以通过索引来访问,索引从0开始。 **声明语法:** ```c 类型名 数组名[数组长度]; ``` 例如: ```c int arr[5]; // 声明一个包含5个整数的一维数组 ``` 你可以通过下标来初始化或修改数组中的元素: ```c arr[0] = 1; // 将第一个元素设置为1 arr[1] = 2; // ... printf("%d", arr[0]); // 输出第1个元素的值 ``` **优点:** - 简单易用,适合处理线性数据结构。 - 访问速度快,因为内存布局是连续的。 --- #### 2. **二维数组** 二维数组可以看作是由多个一维数组组成的矩阵。每一行是一个一维数组,整个二维数组由若干这样的行组成。 **声明语法:** ```c 类型名 数组名[行数][列数]; ``` 例如: ```c int matrix[3][4]; // 声明一个3行4列的二维数组 ``` 同样地,你可以通过两个维度的索引来初始化或访问其中的元素: ```c matrix[0][0] = 1; // 第一行第一列设为1 matrix[0][1] = 2; // ... for (int i = 0; i < 3; ++i) { for (int j = 0; j < 4; ++j) { printf("matrix[%d][%d] = %d\n", i, j, matrix[i][j]); } } ``` **存储方式:** C语言中,二维数组按照行优先的方式存放在内存中。即先存放完整的第一行,再放第二行,以此类推。这意味着 `matrix[1][0]` 的地址紧接在 `matrix[0][3]` 后面(假设每行列长均为固定)。 --- ### 示例代码 下面展示了一个简单的例子,分别创建并操作了一维数组和二维数组: ```c #include <stdio.h> int main() { // 创建并初始化一维数组 int oneDArray[] = {1, 2, 3}; // 打印所有元素 for(int i=0;i<3;++i){ printf("oneDArray[%d]: %d\n", i ,oneDArray[i]); } // 创建并初始化二维数组 int twoDArray[][3] = {{1, 2, 3}, {4, 5, 6}}; // 遍历打印所有的元素 for(int row=0;row<2;++row){ for(int col=0;col<3;++col) printf("twoDArray[%d][%d]: %d ", row,col,twoDArray[row][col]); printf("\n"); } return 0; } ``` 上述程序将依次输出各个位置上保存的数据内容。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值