一.数组基本知识点、本质(通用)
无论是一维还是二维或者是字符数组,数组名都代表首元素的地址
e.g a[10]是一个有10个元素的一维数组,a代表第1个元素即a[ 0 ]的地址。
虽然二维数组逻辑形态我们认为是二维的矩阵状态,但其存储形式为线性存储
e.g a[2][2]为一个二维数组,假设其首元素地址a[0][0]为1002,则其后3个元素的地址分别为1003,1004,1005是一维线性连续存放的。
二.printf函数引用数组的方法
除了字符数组printf语句有规定相应的格式化字符串用法外,一维二维数组用要通过循环将数组元素一个一个引用,无法直接引用整个数组。
e.g 字符数组 c[6]={'H','e','l','l','o','\0'} (\0为字符串结束标志,方便对字符串即字符数组常用对象进行引用)
printf("%s",c) 的输出结果为 Hello
二维数组c[2][2]:
2 3
4 1
引用方法:
for(i=0;i<=1;i++)
{
for(j=0;j<=1;j++)
{
printf("%d",c[i][j]);//循环打印单个数组元素
}
printf("\n");//(固定操作),以二维数组的形式提取输出此数据
}
三.用scanf语句对数组元素赋值的方法
除了对字符数组可以以字符串的形式赋值外,一维二维数组需要对每个元素单独赋值,如果是填充零则可以在初始化数组时留意。
e.g
对一维数组赋值:
scanf("%d",&a[1]);
对二维数组赋值:
scanf("%d",&a[1][2]);
(以上由于都是对数组元素赋值,因此还是要加上地址符&)
对字符数组赋值:
scanf("%s",a);
此时a为数组a的首元素地址,不需要地址符&
四.注意点
使用字符数组的时候注意字符串结束符号"\0"的灵活运用,以及熟悉常用的字符串函数(要调入string.h的库文件)
scanf(),gets(),getchar()等输出函数的使用方式有很多不同,关系到输入方面的缓冲区原理,建议深入了解一下缓冲区这方面的知识。
如果这篇文章对你有帮助的话,给博主一个免费的赞鼓励博主吧~