C语言 数组(做个笔记)

本文详细介绍了C语言中数组的定义方式,包括普通定义和集成初始化定义,并强调了数组的特点,如元素类型一致、大小不可变、下标从0开始。同时,解释了如何通过sizeof运算符计算数组大小,以及数组赋值的注意事项。此外,还讨论了遍历数组的常见错误,数组作为函数参数的处理,静态和动态数组的区别,以及二维数组的定义和初始化。最后提到了一些关于数组定义和内存占用的实践问题。
摘要由CSDN通过智能技术生成

1,定义数组

(1)普通定义

<类型>变量名称[元素数量]

int grade[100]

double a[20] 

(1)元素数量    

(2)集成初始化定义 

a={1,2,3,4,5,8,9,}   //最后一个逗号无影响 

数组大小编译器自己计算 

a[4]={1}       //   [1,0,0,0] 

 给定数组大小,其余部分补0

2,数组特点

(1)所有元素类型相同 

(2)数组被定义后,大小不能更改

(3)下标从0开始,最大下标为 ‘元素数量-1’

(4)字符可以作下标,ASCII码是数字       a['K']=1

(5)[ ]内是 常量或符合常量

int a[0];        //可以创建数量为0的数组,但没有什么卵用

3,数组大小计算

sizeof:给出整个数组所占据的内容大小。    单位:字节

 sizeof(a)/sizeof(a[0])

//a是数组变量,先求出整个数组大小,再求出单个元素大小。相除即可

4,数组赋值

//a是数组变量

int b[]=a (X)

(1)数组本身不能被赋值    (2)一个数组不能把所有元素交给另一个数组,需遍历

5,遍历易错点

(1)小于等于数组本身大小

(2)离开循环后,仍使用循环变量作为数组下标

6,函数

//a是数组变量

形参(int a[],int length)

实参(a,sizeof(a)/sizeof(a[0]))

(1)数组做参数时,不能在[ ]中给出大小(以后解释)

(2)数组做参数时,不能利用sizeof计算大小(以后解释)

7,静态和动态数组

static int b[5]={1,2,3}

//只对前三个元素赋值,其余为0

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

//只对前三个元素赋值,其余为不确定

8,二维数组、

(1)定义

类型名  数组名 [行长度][列长度] 

 a[i,j]   等价于   a[ j ]

(2)初始化

1.分行赋初值 

类型名 数组名 [ 行长度 ][ 列长度 ]={ {初值表1},{初值表2},{初值表3}...... }

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

[1,2
 3,4]


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

[1,2,3
 0,0,0
 4,5,6]       空缺处补0

 int a[ ][列长度]={ {初值表1},{初值表2},{初值表3}...... }

行数编译器会自动算出,列数必须写上

2.顺序赋初值

类型名 数组名 [ 行长度 ][ 列长度 ]={ 初值表 }

//按顺序把值赋予数组里面

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

9,其他

 1.    int N=5, b[N][N];  定义是正确的

2.假定int类型变量占用两个字节,其有定义:int x[10]={0, 2, 4}; 则数组x在内存中所占字节数是(D

A.6

B.3

C.10

D.20

定义了10个整形大小。所以 是10*2.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值