C语言--数组知识回顾

本文介绍了C语言中一维数组的创建、初始化方法,强调数组在内存中的连续性,并讨论了二维数组的创建和初始化。此外,文章还涵盖了数组的下标限制、数组越界、传参技巧以及sizeof和strlen的区别。
摘要由CSDN通过智能技术生成

一维数组

  • 一维数组的创建

数组是一组相同类型元素的集合 

int arr[10];
char ch[20];

注意:在c99标准之前,数组的大小必须是常量或者常量表达式。在c99之后,数组的大小可以为变量,为了支持变长数组。用变量的数组不能初始化。

  • 一维数组的初始化 

数组的初始化是指在创建数组的同时给数组一些合理的初始值。 

int arr[10]   =  {0};//默认全部元素为0
int arr1[10] = {1,2,3};//不完全初始化,前三个元素被初始化为1,2,3。剩余元素默认初始化为0

数组操作符:[],为下标引用操作符 。

随着数组下标的增长,元素的地址,有规律的递增,由此可以得出结论:数组在内存中是连续存放的。

 二维数组

  • 二维数组的创建

int arr[3][[4];

 上面的意思该数组存放了三行数据,每行数据又有四个,也就是三行四列。

注意:二维数组在创建时,行可以省略,但列不可以。

  •  二维数组的初始化

    int arr[3][4] = {1,2,3,4,5,6,7,8,2,3,4,1};//这样会依次读取四个数放在一行,若最后不够四个则会自动补0;
    int arr[3][4] = {{1,2},{3,4},{5,6}};//这样子系统会将括号里的数放在一行,不够补0

    数组综合知识点

  • 数组越界 

数组的下标是有限制范围的,数组的下标是规定从0开始的,如果数组有n个元素,那么最后一个元素的下标就是n-1;所以数组下标如果小于0或者大于n-1,就是数组越界访问了(C语言本身不检查) 

  • 数组传参 

 数组在传参的时候,有两种写法:数组,指针

Attention:

一维数组:当数组在传参时,传递的只是数组首元素的地址,所以形参应该是指针变量(虽然有两种写法),在函数内求数组的元素个数是不可取的。

一维数组的数组名确实能表示首元素的地址,但是有两个例外:

1.sizeof(数组名),这里表示整个数组,计算的是整个数组的大小。

2.&数组名,这里数组名也是表示整个数组,取出的是整个数组的地址。

打印小技巧:% num d(右对齐),% -num d(左对齐)。

二维数组的数组名的理解:

       二维数组的数组名也表示首元素的地址,但是是第一行的地址(与一行一列的第一个元素地址相同,但表达的意义不同),将其看成一维数组,第一行就是其首元素。

  • sizeof 与strlen

sizeof():是一个操作符,用来计算变量(类型)所占内存空间的大小,不关注内存中存放的具体内容,单位是字节,计算返回结果为size_t的类型(无符号整型)。 

strlen():是一个库函数,是专门求字符串长度的,只能针对字符串,从参数给定的地址向后找\0,统计\0之前出现的字符的个数。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值