C语言数组

1.为什么要学习数组?

总结:有时候需要定义很多变量,如果用一般的定义方式显得麻烦,并且容易出错,所以就引用数组的这个概念。

2、怎么定义数组?

比如:

int nun[4]; //数据类型 数组名[常量];  常量:5 3+2;

int add(int n)
{
int num[n]; //不符合C语言标准,建议大家不要这么使用;
}

3、怎么使用数组?
定义的是时候呢,你可以整体定义;但是使用的使用必须一个一个使用:

通过下标,int num[4];

num[0]:使用数组中第一个元素;

num[1]:使用数组中第二个元素;

以此类推;但是最后一个数组是 int a[N];===>a[N - 1];

非要使用:a[N]; //大家不要越界使用,学习语言语言的时候根据规定来,语言相当于一个使用使用说明书,你是学习它的,不是改变他的;
4、怎么初始化数组?
分为两类:
1、完全初始化:int a[4] = {1,2,3,4};
2、不完全初始化:int a[3] = {33};
a[0] = 33,a[1] = 0; a[2] = 0;

对a[0],a[1],a[2]值的分析:
正常分析的话:三种情况:①都是33;②第一个是33,后面的都是0;③11 11 11;

学习方法:学习 = 基础知识 + 合理推断;

没有基础知识,再强的合理推断也没用;
但是即使你有了基础知识作为铺垫,没有合理推断能力,那也是死记硬背!

小结:基础知识和合理推断两者缺一不可。

int a[3] = {}; //a[0] = 0,a[1] = 0,a[2] = 0;
int a[3] = {0}; //跟上面是等价的;
int a[3]; //没有初始化的,随机值

5.二维数组

int a[N][M]; //N,M 是常量。

int a[3][4]; //二维数组由3个一维数组组成,然后每个一维数组里面包含了4个元素。
a[0][0] a[0][1] a[0][2] a[0][3]
a[1][0] a[1][1] a[1][2] a[1][3]
a[2][0] a[2][1] a[2][2] a[2][3]

二维数组在内存中的存储方式:按行存放,先放第一行,再放第二行。。。。。依次类推。

6.字符数组

char ch[4] = {'a','b'..};
char ch[] = {"HelloWorld"};
char ch[11] = {"HelloWorld"};
字符串的结尾标志是'\0';
遍历字符串的时候,遍历是'\0'默认为字符串结束了,然后'\0'前面的字符就是字符串的内容;
输入字符串的时候:hello  系统会自动在o后面加上一个'\0'表示字符串结束;
‘\0’占存储空间的;

sizeof(ch);       //11,因为'\0'占存储空间的;
strlen(ch); //10,因为'\0'表示字符串结束,字符串的真正内容是'\0'前面的字符,当然不算'\0';

‘\0’在ASCII表中为0,什么都不显示。

int a[5] = {1,2,3,4,5};
sizeof(a);  //定义了整型数组,然后数组元素是5个,每一个整型数所占字节是4个字节,那么5个:4*5 = 20。
sizeof(a)/sizeof(a[0]);       //实现的功能是求出数组个数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值