当前位置: 代码迷 >> 综合 >> 【C语言学习笔记】MOOC——数组的那些事
  详细解决方案

【C语言学习笔记】MOOC——数组的那些事

热度:13   发布时间:2024-02-22 12:47:39.0

初始化篇

1.C语言的全局变量在没有赋值以前默认为0,因此在开头定义无需再进行赋值。

例如:include <stdio.h>int a[10];

2.对于一维数组,当数据非常大的时候,不需要给出数组的大小,编译器可以替你数数。但对于小数组还是建议写上数组大小。

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

3.若数组只是用来读入不读写,可使用const声明数组,以免后续不小心改动

4.集成初始化时的定位,可用[n]在初始化数据中给出定位,没有定位的数据接在前面的位置后面,其他位置的值补零,特别适合于初始数据稀疏的数组。

例如:int a[10] = { [0] = 2, [2] = 3, 6 };

5.在C99之前不允许变量数组,即

int m = 8;float a[m];

在C99之前无法识别
题目实例:#1海选女主角——数组的锅


使用技巧

1.数组经常要被用在for循环中,由于人工计算特别容易出错,所以我们可以巧用sizeof运算符来让电脑帮我们计算长度,另外一个优点就是这样子在今后对代码进行优化修改时,若数组的长度改变,sizeof也会动态改变,无需全文修改,有可扩展性。

例如:int length = sizeof(a) / sizeof(a[0]);

*因为我个人一直弄混sizeof和strlen在计算字符串时候的区别,现在碰到了就再复习巩固一下

回归字符串的定义,字符串是以0结尾的一串字符,固sizeof计算的是包括最后’\0’长度的,而strlen则相反,结果不包括最后’\0’的长度。

2.数组变量本身不能被赋值,若要把一个数组的所有元素交给另外一个数组,必须采用for循环遍历的方法把每一项的数值逐个赋值给新数组。

3.数组作为函数的参数时,不能在[]中给出数组的大小。例如

int fun( int a, int a[]);