c语言数组的使用步骤,C语言中为什么要使用数组?详细图解数组的使用

90677457_1

唉,有这么多不同主题的书。在哪里才能找到有关中国音乐的书呢?

90677457_2

数组是可以在内存中连续存储多个元素的结构

数组中的所有元素必须属于相同的数据类型

90677457_3

1.在计算机内存中,同一数组的所有元素按下标顺序依次存放在相邻的存储单元中,因此数组占据的内存空间大小可由数组长度和数组类型计算出来

2.数组名是数组的唯一标识符

3.数组元素用数组名和元素下标表示

90677457_4

一维数组的声明:

90677457_5

一维数组的初始化:

int emp_code[5] = {1299,1499,1699,1899,2099};

90677457_6

其他的初始化情况:

int arr[10] = {10,9,8,7,6,5,4,3,2,1,0}; //错误!越界了

int arr[10] = {9,8,7,5}; //正确,后面的6个元素初始化0

int arr[] = {9,8,7}; //正确:元素个数为 3

int arr[]={}; //错误,到底是几个元素?

一维数组的引用:

数组元素的表示方法是:

数组名称[下标]

“下标”是一个整数,代表元素的位置。

C语言的数组元素的下标是从0开始的,a[0]是数组a的第1个元素,a[1]是第2个元素,……,a[i-1]是第i个元素。

还可这样表示数组中的元素:*(a+i)

float price[4];

printf(“Enter prices of 4 books\n”);

for (i = 0;i <= 3; i++)

{

scanf(“%f”,&price[i]);

}

一维数组示例:

# include

int main()

{

int i;

float item_rate[5],total=0;

printf("\n 请输入商品价格:");

for(i=0;i<5;i++)

{

scanf("%f",&item_rate[i]);

total=total+item_rate[i];

}

printf(“\n 所有商品的合计费用:%f\n ",total);

}

数组类型:

90677457_7

90677457_8

二维数组的存储结构:

C语言中,二维数组是按行存储的

二维数组的声明:

类型说明 数组名称[][列数]

例:int a[][3];

二位数组的定义:

类型说明 数组名称[行数][列数]

例: float a[3][4];

行数、列数都是整型常量或常量表达式

对于有m行n列的二维数组a,其行下标的取值范围是0~m-1,列下标的取值范围是0~n-1

二维数组的初始化:

二维数组的初始化:

1、按元素存储顺序赋初值

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

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

2、按行赋初值

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

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

3、省略了的行数说明

int a[][4]={{1, 2, 3, 4}, {5, 6, 7, 8}};

int b[][3]={1, 2, 3, 4, 5, 6, 7, 8, 9};

int c[][3]={{1, 2}, {3}};

二维数组的引用:

数组元素的表示方法是:

数组名称[行][列]

对于m行n列的二维数组,a[0][0] 是数组的第一个元

素,a[m-1][n-1] 是最后一个元素

a表示第0行首地址,a+i表示第i行首地址

*(a+i),a[i],&a[i][0]表示第i行第0个元素地址

*(a+i)+j,a[i]+j,&a[i][j]表示第i行第j个元素地址

*(*(a+i)+j),*(a[i]+j),a[i][j]表示第i行第j个元素

如何理解二维数组?

如有int a[2][2]

90677457_9

总结:

数组是可以在内存中连续存储多个元素的结构数组中的所有元素必须属于相同的数据类型

数组必须先声明,然后才能使用。声明一个数组只是为该数组留出内存空间,并不会为其赋任何值

数组的元素通过数组下标访问

一维数组可用一个循环动态初始化,而二维数组可用嵌套循环动态初始化

二维数组可以看作是由一维数组的嵌套而构成的

数组的下标都是从0开始,所以下标最大只到size-1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值