1、数组的初始化,比较简单,实例程如下:
#include<stdio.h> # define M 12 int main(void){ int days[M]={31,28,31,30,31,30,31,30,30,31,30,31}; int i; for(i=0;i<M;i++) printf("Months %d has %2d days.\n",i+1,days[i]); return 0; }
运行结果如下:
2.未经初始化的数组:
实例程序;
#include<stdio.h> # define M 12 int main(void){ int N[M];//未经初始化的数组 int days[M]={31,28,31,30,31,30,31,30,30,31,30,31}; int i; for(i=0;i<M;i++) //printf("Months %d has %2d days.\n",i+1,days[i]); printf("%d %d\n", i,N[i]); return 0; }
运行结果:
由此可知,在初始化之前,数组元素的值是不确定的,编译器使用的数值是存储单元中已有的数值,上面的输出结果是不一定的。
3、在初始化数组的时候,编译器很机智,即使你给的元素数目小于或者为给定数组大小,编译器会自动识别,不够的话,它会自己用0代替。但是当初始化列表中有太多对的数目时,编译器会提醒错误。too many initializers太多初始化。如下删去几个元素,则结果:
#include<stdio.h> # define M 12 int main(void){ int N[M];//未经初始化的数组 int days[M]={31,28,31,30,31,30,31,30}; int i; for(i=0;i<M;i++) printf("Months %d has %2d days.\n",i+1,days[i]); //printf("%d %d\n", i,N[i]); return 0; }
4、二维数组,举个栗子:float rain[5] [12] 首先,rain[5]表示一个包含五个元素的数组,至于每个元素的情况,需要查看声明的其余部分。剩余的便是float【12】,表示12浮点数的 数组。总之,该二维数组表示:rain具有5个元素,并且每个元素都是包含12个数值的数组。
具体理解画图如下:也算是挺明了的了。
5、指针和数组
指针提供了用来一种用来使用地址的
时间: 2024-10-04 10:16:29